diff --git a/src/frontend/A32/translate/translate_arm/barrier.cpp b/src/frontend/A32/translate/translate_arm/barrier.cpp
index 2f4a53a4..5ae3eba9 100644
--- a/src/frontend/A32/translate/translate_arm/barrier.cpp
+++ b/src/frontend/A32/translate/translate_arm/barrier.cpp
@@ -20,7 +20,7 @@ bool ArmTranslatorVisitor::arm_DSB([[maybe_unused]] Imm4 option) {
 
 bool ArmTranslatorVisitor::arm_ISB([[maybe_unused]] Imm4 option) {
     ir.InstructionSynchronizationBarrier();
-    ir.SetRegister(Reg::PC, ir.Imm32(ir.current_location.PC() + 4));
+    ir.BranchWritePC(ir.Imm32(ir.current_location.PC() + 4));
     ir.SetTerm(IR::Term::ReturnToDispatch{});
     return false;
 }