Index: /trunk/source/lisp-kernel/thread_manager.c
===================================================================
--- /trunk/source/lisp-kernel/thread_manager.c	(revision 14198)
+++ /trunk/source/lisp-kernel/thread_manager.c	(revision 14199)
@@ -1434,4 +1434,20 @@
       condemn_area_holding_area_lock(cs);
     }
+    /* On some platforms - currently just linuxarm - we have to
+       allocate a separate alternate signal stack (rather than just
+       using a few pages of the thread's main stack.)  Disable and
+       free that alternate stack here.
+    */
+#ifdef ARM
+#if defined(LINUX)
+    {
+      stack_t new, current;
+      new.ss_flags = SS_DISABLE;
+      if (sigaltstack(&new, &current) == 0) {
+        munmap(current.ss_sp, current.ss_size);
+      }
+    }
+#endif
+#endif
     destroy_semaphore(&tcr->suspend);
     destroy_semaphore(&tcr->resume);
