Index: /trunk/src/recompiler/target-i386/helper.c
===================================================================
--- /trunk/src/recompiler/target-i386/helper.c	(revision 6157)
+++ /trunk/src/recompiler/target-i386/helper.c	(revision 6158)
@@ -720,5 +720,9 @@
             raise_exception_err(EXCP0A_TSS, ss & 0xfffc);
         if (!(ss_e2 & DESC_P_MASK))
+#ifdef VBOX /* See page 3-477 of 253666.pdf */
+            raise_exception_err(EXCP0C_STACK, ss & 0xfffc);
+#else
             raise_exception_err(EXCP0A_TSS, ss & 0xfffc);
+#endif
         new_stack = 1;
         sp_mask = get_sp_mask(ss_e2);
@@ -2207,5 +2211,9 @@
                 raise_exception_err(EXCP0D_GPF, gate_cs & 0xfffc);
             if (!(e2 & DESC_P_MASK))
+#ifdef VBOX /* See page 3-514 of 253666.pdf */
+                raise_exception_err(EXCP0B_NOSEG, gate_cs & 0xfffc);
+#else
                 raise_exception_err(EXCP0D_GPF, gate_cs & 0xfffc);
+#endif
             limit = get_seg_limit(e1, e2);
             if (new_eip > limit)
@@ -2399,5 +2407,9 @@
                 raise_exception_err(EXCP0A_TSS, ss & 0xfffc);
             if (!(ss_e2 & DESC_P_MASK))
+#ifdef VBOX /* See page 3-99 of 253666.pdf */
+                raise_exception_err(EXCP0C_STACK, ss & 0xfffc);
+#else
                 raise_exception_err(EXCP0A_TSS, ss & 0xfffc);
+#endif
             
             //            push_size = ((param_count * 2) + 8) << shift;
