Index: /trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-SwitchToPE16_V86.asm
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-SwitchToPE16_V86.asm	(revision 59900)
+++ /trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-SwitchToPE16_V86.asm	(revision 59901)
@@ -46,7 +46,9 @@
 %else
         ;
-        ; Make sure we're the 16-bit segment and then call Bs3SwitchToPE16.
+        ; Convert the return address and jump to the 16-bit code segment.
         ;
  %if TMPL_BITS != 16
+        shl     [xSP], TMPL_BITS - 16
+        add     xSP, (TMPL_BITS - 16) / 8
         jmp     .sixteen_bit_segment
 BS3_BEGIN_TEXT16
@@ -54,4 +56,8 @@
 .sixteen_bit_segment:
  %endif
+
+        ;
+        ; Switch to 16-bit PE16 and from there to V8086.
+        ;
         extern  TMPL_NM(Bs3SwitchToPE16)
         call    TMPL_NM(Bs3SwitchToPE16)
