Index: sdl.c
===================================================================
--- sdl.c	(revision 635)
+++ sdl.c	(working copy)
@@ -115,6 +115,14 @@
 {
 	/* Own hand-made parachute for the cases of failed assertions. */
 	SDL_CALL SDL_Quit();
+	if (sig == SIGSEGV) {
+		signal(SIGSEGV, SIG_DFL);
+		raise(SIGSEGV);
+	}
+	if (sig == SIGFPE) {
+		signal(SIGFPE, SIG_DFL);
+		raise(SIGFPE);
+	}
 }
 #endif
 
@@ -137,6 +145,8 @@
 
 #ifdef UNIX
 	signal(SIGABRT, SdlAbort);
+	signal(SIGSEGV, SdlAbort);
+	signal(SIGFPE, SdlAbort);
 #endif
 
 	return NULL;
@@ -151,6 +161,8 @@
 		#ifdef UNIX
 			#ifndef __MORPHOS__
 				signal(SIGABRT, SIG_DFL);
+				signal(SIGSEGV, SIG_DFL);
+				signal(SIGFPE, SIG_DFL);
 			#else
 				signal(SIGABRT, (void (*)(int))0);
 			#endif
