diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp
index 689be030a425af3f4a6fd17d1ceb7a4acdebb2e1..e83219f9dbcf4f5c6fd9a4ee875d31995d8c626f 100644
--- a/src/base/SMPFunction.cpp
+++ b/src/base/SMPFunction.cpp
@@ -6610,6 +6610,10 @@ void SMPFunction::SetLinks(void) {
 					// Mark CurrBlock as now being reachable, along with the blocks it dominates.
 					CurrBlock->DepthFirstMark();
 					++BlockIter;
+
+					// Block could be IBTarget and thus actually be reachable. Cover our bases by emitting an IBT annotation.
+					SMPInstr *FirstInst = (*(CurrBlock->GetFirstInst()));
+					global_STARS_program->PrintUnknownCodeXref(CurrBlock->GetFirstAddr(), FirstInst->GetSize());
 				}
 				changed = true;
 			} // end if (processed) ... else ...
diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp
index 57ce2ea4702e3f294b1e3da16320f3447ba10451..7effb673aa5fc362efb934b6351b47d86f75cbf9 100644
--- a/src/base/SMPInstr.cpp
+++ b/src/base/SMPInstr.cpp
@@ -2137,8 +2137,14 @@ void SMPInstr::PrintOperands(void) const {
 
 // Complete DEBUG printing.
 void SMPInstr::Dump(void) {
-	SMP_msg("%llx %zd SMPitype: %d SPOffset: %lld %s\n", (unsigned long long) this->GetAddr(), this->GetSize(), (int) this->type, 
-			(long long) this->GetStackPtrOffset(), DisAsmText.GetDisAsm(this->GetAddr(), this->IsMarkerInst()));
+	if (this->IsMarkerInst()) {
+		SMP_msg("%llx 1 SMPitype: %d SPOffset: %lld fnop\n", (unsigned long long) this->GetAddr(), (int) this->type,
+			(long long) this->GetStackPtrOffset());
+	}
+	else {
+		SMP_msg("%llx %zd SMPitype: %d SPOffset: %lld %s\n", (unsigned long long) this->GetAddr(), this->GetSize(), (int) this->type,
+			(long long) this->GetStackPtrOffset(), DisAsmText.GetDisAsm(this->GetAddr(), false));
+	}
 #if STARS_DUMP_FG_INFO
 	SMP_msg("USEs: ");
 	if (NULL == this->GetBlock()) { // during early improvement of disasm