Index: /trunk/src/recompiler/VBoxRecompiler.c
===================================================================
--- /trunk/src/recompiler/VBoxRecompiler.c	(revision 12426)
+++ /trunk/src/recompiler/VBoxRecompiler.c	(revision 12427)
@@ -1981,16 +1981,16 @@
              */
             pVM->rem.s.Env.exception_is_int     = 1;
-            pVM->rem.s.Env.exception_next_eip   = pCtx->eip + 2;
+            pVM->rem.s.Env.exception_next_eip   = pCtx->rip + 2;
             /* int 3 may be generated by one-byte 0xcc */
             if (u8TrapNo == 3)
             {
-                if (read_byte(&pVM->rem.s.Env, pVM->rem.s.Env.segs[R_CS].base + pCtx->eip) == 0xcc)
-                    pVM->rem.s.Env.exception_next_eip = pCtx->eip + 1;
+                if (read_byte(&pVM->rem.s.Env, pVM->rem.s.Env.segs[R_CS].base + pCtx->rip) == 0xcc)
+                    pVM->rem.s.Env.exception_next_eip = pCtx->rip + 1;
             }
             /* int 4 may be generated by one-byte 0xce */
             else if (u8TrapNo == 4)
             {
-                if (read_byte(&pVM->rem.s.Env, pVM->rem.s.Env.segs[R_CS].base + pCtx->eip) == 0xce)
-                    pVM->rem.s.Env.exception_next_eip = pCtx->eip + 1;
+                if (read_byte(&pVM->rem.s.Env, pVM->rem.s.Env.segs[R_CS].base + pCtx->rip) == 0xce)
+                    pVM->rem.s.Env.exception_next_eip = pCtx->rip + 1;
             }
         }
Index: /trunk/src/recompiler/target-i386/helper.c
===================================================================
--- /trunk/src/recompiler/target-i386/helper.c	(revision 12426)
+++ /trunk/src/recompiler/target-i386/helper.c	(revision 12427)
@@ -965,4 +965,9 @@
     uint32_t e1, e2, e3, ss;
     target_ulong old_eip, esp, offset;
+
+#ifdef VBOX
+    if (remR3NotifyTrap(env, intno, error_code, next_eip) != VINF_SUCCESS)
+        cpu_loop_exit();
+#endif
 
     has_error_code = 0;
