diff --git a/src/core/arm/interpreter/armsupp.cpp b/src/core/arm/interpreter/armsupp.cpp
index 101b9807ae4779d5f27e8d5c6aaa9f14076e01c8..48e55c63a725fe394f9e11a52a9c583a614f5ae5 100644
--- a/src/core/arm/interpreter/armsupp.cpp
+++ b/src/core/arm/interpreter/armsupp.cpp
@@ -17,9 +17,11 @@
 
 #include "armdefs.h"
 #include "armemu.h"
+
 //#include "ansidecl.h"
 #include "skyeye_defs.h"
 #include "core/hle/hle.h"
+#include "core/arm/disassembler/arm_disasm.h"
 
 unsigned xscale_cp15_cp_access_allowed (ARMul_State * state, unsigned reg,
                                         unsigned cpnum);
@@ -846,7 +848,10 @@ ARMul_CDP (ARMul_State * state, ARMword instr)
 void
 ARMul_UndefInstr (ARMul_State * state, ARMword instr)
 {
-	ERROR_LOG(ARM11, "Undefined instruction!! Instr: 0x%x", instr);
+	char buff[512];
+	ARM_Disasm disasm = ARM_Disasm();
+	disasm.disasm(state->pc, instr, buff);
+	ERROR_LOG(ARM11, "Undefined instruction!! Disasm: %s Opcode: 0x%x", buff, instr);
 	ARMul_Abort (state, ARMul_UndefinedInstrV);
 }