#define SIG_MEMORY_FAULT SIGSEGV
-#define SIG_STOP_FOR_GC (SIGUSR1)
+/* Note that this must be higher than the highest numbered
+ * synchronously generated signal that we handle (that is SIGSEGV),
+ * due to Linux signal handling pecularities. See thread "Signal
+ * delivery order" from 2009-03-14 on kernel-devel@vger.kernel.org. */
+#define SIG_STOP_FOR_GC (SIGUSR2)