--- DirectFB-1.2.6/lib/direct/signals.c~	2011-04-27 16:15:58.501628555 +0100
+++ DirectFB-1.2.6/lib/direct/signals.c	2011-04-27 16:17:08.089496074 +0100
@@ -67,11 +67,15 @@ typedef struct {
      struct sigaction old_action;
 } SigHandled;
 
-static int sigs_to_handle[] = { /*SIGALRM,*/ SIGHUP, SIGINT, /*SIGPIPE,*/ /*SIGPOLL,*/
-                                SIGTERM, /*SIGUSR1, SIGUSR2,*/ /*SIGVTALRM,*/
-                                /*SIGSTKFLT,*/ SIGABRT, SIGFPE, SIGILL, SIGQUIT,
-                                SIGSEGV, SIGTRAP, /*SIGSYS, SIGEMT,*/ SIGBUS,
-                                SIGXCPU, SIGXFSZ };
+/* Don't handle any signals that would cause a core dump because
+ * otherwise it's likely that we'll die horribly first and produce a
+ * far less useful core dump. In fact, don't handle any signals at
+ * all. We'll deal with them ourselves. */
+static int sigs_to_handle[] = { /*SIGALRM,*/ /*SIGHUP,*/ /*SIGINT,*/ /*SIGPIPE,*/ /*SIGPOLL,*/
+                                /*SIGTERM,*/ /*SIGUSR1, SIGUSR2,*/ /*SIGVTALRM,*/
+                                /*SIGSTKFLT,*/ /*SIGABRT,*/ /*SIGFPE,*/ /*SIGILL,*/ /*SIGQUIT,*/
+                                /*SIGSEGV,*/ /*SIGTRAP,*/ /*SIGSYS, SIGEMT,*/ /*SIGBUS,*/
+                                /*SIGXCPU,*/ /*SIGXFSZ*/ };
 
 #define NUM_SIGS_TO_HANDLE ((int)D_ARRAY_SIZE( sigs_to_handle ))
 
