diff --git a/src/interfaces/irdb/STARS_IRDB_Program.cpp b/src/interfaces/irdb/STARS_IRDB_Program.cpp
index f79e98c359714c62c762d5abc5563b1306d98ff8..738cd067ff572d95e2e6a9418fa7e5ab45f34c3f 100644
--- a/src/interfaces/irdb/STARS_IRDB_Program.cpp
+++ b/src/interfaces/irdb/STARS_IRDB_Program.cpp
@@ -304,6 +304,19 @@ void STARS_IRDB_Program_t::GetBlockSuccessorTargets
 		SuccList.push_back(STARS_InstructionID_t(irdb_insn->GetFallthrough()->GetBaseID()));
 	if(irdb_insn->GetTarget())
 		SuccList.push_back(STARS_InstructionID_t(irdb_insn->GetTarget()->GetBaseID()));
+
+	// if no IBTs or the analysis failed.
+	if(!irdb_insn->GetIBTargets() || !irdb_insn->GetIBTargets()->IsComplete())
+		// don't include any
+		return;
+
+	for(libIRDB::InstructionSet_t::iterator it=irdb_insn->GetIBTargets()->begin(); 
+		it!=irdb_insn->GetIBTargets()->end(); ++it)
+	{
+		libIRDB::Instruction_t* target=*it;
+		assert(target);
+		SuccList.push_back(STARS_InstructionID_t(target->GetBaseID()));
+	}
 	
 	return;
 }