diff --git a/src/dosext/dpmi/dpmi.c b/src/dosext/dpmi/dpmi.c
index 179410825..ecd538885 100644
--- a/src/dosext/dpmi/dpmi.c
+++ b/src/dosext/dpmi/dpmi.c
@@ -5724,7 +5724,41 @@ char *DPMI_show_state(sigcontext_t *scp)
          ((mapping_find_hole((uintptr_t)ssp2, (uintptr_t)ssp2 + 10, 1) == MAP_FAILED) &&
           dpmi_is_valid_range(saddr, 10))) {
        pos += sprintf(buf + pos, "-> ");
+       for (i = 0; i < 40; i++)
+         pos += sprintf(buf + pos, "%02x ", *ssp2++);
+       pos += sprintf(buf + pos, "\n");
+      } else {
+       pos += sprintf(buf + pos, "SS:ESP points to invalid memory\n");
+      }
+      if (!((_ss) & 0x0004)) {
+        /* GDT */
+#if 0
+        ssp2 = (unsigned char *) _rsp;
+        saddr = 0;
+#else
+        return buf;
+#endif
+      }
+      else {
+        /* LDT */
+       ssp2 = SEL_ADR(_ss, (uint16_t)_esp);
+       saddr = GetSegmentBase(_ss) + (uint16_t)(_esp);
+      }
+      #define SSPP (ssp2 - 10)
+      pos += sprintf(buf + pos, "STACK16: ");
+      if ((SSPP >= &mem_base[0] && SSPP + 10 < &mem_base[0x110000]) ||
+         ((mapping_find_hole((uintptr_t)SSPP, (uintptr_t)SSPP + 10, 1) == MAP_FAILED) &&
+          dpmi_is_valid_range(saddr - 10, 10))) {
        for (i = 0; i < 10; i++)
+         pos += sprintf(buf + pos, "%02x ", SSPP[i]);
+      } else {
+       pos += sprintf(buf + pos, "<invalid memory> ");
+      }
+      if ((ssp2 >= &mem_base[0] && ssp2 + 10 < &mem_base[0x110000]) ||
+         ((mapping_find_hole((uintptr_t)ssp2, (uintptr_t)ssp2 + 10, 1) == MAP_FAILED) &&
+          dpmi_is_valid_range(saddr, 10))) {
+       pos += sprintf(buf + pos, "-> ");
+       for (i = 0; i < 40; i++)
          pos += sprintf(buf + pos, "%02x ", *ssp2++);
        pos += sprintf(buf + pos, "\n");
       } else {
diff --git a/src/include/emu.h b/src/include/emu.h
index 4d49376c2..0460f6a5c 100644
--- a/src/include/emu.h
+++ b/src/include/emu.h
@@ -497,6 +497,6 @@ extern int hlt_unregister_handler_vm86(Bit16u start_addr);

 extern const char *Path_cdrom[];

-#define WANT_SIGRETURN_WA 0
+#define WANT_SIGRETURN_WA 1

 #endif /* EMU_H */
