diff --git a/include/base/SMPProgram.h b/include/base/SMPProgram.h
index 9b237968e4520b9f6aba7692ef5049f1f9c6559b..154a45a59461f89c8e98559e2048d5cfa5c3b8b5 100644
--- a/include/base/SMPProgram.h
+++ b/include/base/SMPProgram.h
@@ -80,6 +80,10 @@ inline bool IsImmedNumeric(STARS_ea_t ImmedValue) {
 	return (!(IsImmedGlobalAddress(ImmedValue) || global_STARS_program->IsImmedCodeAddress(ImmedValue)));
 }
 
+inline bool IsAddressInCodeRange(STARS_ea_t addr) {
+	return ((addr >= LowestCodeAddress) && (addr <= HighestCodeAddress));
+}
+
 class LessOff {
 public:
 	bool operator()(const std::pair<size_t, bool> &Off1, const std::pair<size_t, bool> &Off2) const {
diff --git a/src/interfaces/abstract/STARSProgram.cpp b/src/interfaces/abstract/STARSProgram.cpp
index 4176e748d53ed502b9ce6d753bec9dad70e31cd3..490e33766bc6dfd8ae41d3e999161f6d039b49b6 100644
--- a/src/interfaces/abstract/STARSProgram.cpp
+++ b/src/interfaces/abstract/STARSProgram.cpp
@@ -11,6 +11,7 @@
 #include "interfaces/SMPDBInterface.h"
 // #include "interfaces/abstract/all.h"
 #include "base/SMPDataFlowAnalysis.h"
+#include "base/SMPProgram.h"
 
 using namespace std;
 
@@ -399,14 +400,18 @@ bool STARS_Program_t::AreInstIDsInSameFunction(const STARS_ea_t InstID1, const S
 
 // Utility functions to print code xrefs to STARS_XrefsFile
 void STARS_Program_t::PrintCodeToCodeXref(STARS_ea_t FromAddr, STARS_ea_t ToAddr, std::size_t InstrSize) {
-	SMP_fprintf(this->GetXrefsFile(), "%18llx %6zu INSTR XREF IBT FROMIB %18llx \n",
-		(unsigned long long) ToAddr, InstrSize, (unsigned long long) FromAddr);
+	if (IsAddressInCodeRange(ToAddr)) {
+		SMP_fprintf(this->GetXrefsFile(), "%18llx %6zu INSTR XREF IBT FROMIB %18llx \n",
+			(unsigned long long) ToAddr, InstrSize, (unsigned long long) FromAddr);
+	}
 	return;
 }
 
 void STARS_Program_t::PrintDataToCodeXref(STARS_ea_t FromDataAddr, STARS_ea_t ToCodeAddr, std::size_t InstrSize) {
-	SMP_fprintf(this->GetXrefsFile(), "%18llx %6zu INSTR XREF IBT FROMDATA %18llx \n",
-		(unsigned long long) ToCodeAddr, InstrSize, (unsigned long long) FromDataAddr);
+	if (IsAddressInCodeRange(ToCodeAddr)) {
+		SMP_fprintf(this->GetXrefsFile(), "%18llx %6zu INSTR XREF IBT FROMDATA %18llx \n",
+			(unsigned long long) ToCodeAddr, InstrSize, (unsigned long long) FromDataAddr);
+	}
 	return;
 }