diff --git a/mysys/my_static.h b/mysys/my_static.h
index 2483c507e490fe0fb99982d8f1ec9ec1862fcb79..8360728b05710ad8fe42840fca66fea7c05495c2 100644
--- a/mysys/my_static.h
+++ b/mysys/my_static.h
@@ -61,10 +61,10 @@ extern uint	 my_once_extra;
 
 #ifdef THREAD
 /*
-  These threads are except from safemalloc leak scrutiny unless
+  These threads are exempt from safemalloc leak scrutiny unless
   PEDANTIC_SAFEMALLOC is defined
 */
-extern pthread_t signal_thread, kill_thread;
+extern pthread_t signal_th, kill_th, main_th;
 #endif
 
 #ifndef HAVE_TEMPNAM
diff --git a/mysys/safemalloc.c b/mysys/safemalloc.c
index 925abd920ec48a7a913091de223513ccfaa809b5..0c169f2f0cc5210e1fd842fc7f096fcdf1a10b2b 100644
--- a/mysys/safemalloc.c
+++ b/mysys/safemalloc.c
@@ -73,7 +73,7 @@
 #include "mysys_err.h"
 
 ulonglong safemalloc_mem_limit = ~(ulonglong)0;
-pthread_t shutdown_th=0,main_th=0,signal_th=0;
+pthread_t shutdown_th,main_th,signal_th;
 
 #define pNext		tInt._pNext
 #define pPrev		tInt._pPrev
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index abc7d5d5125e3f08073dfac5e58ca0d8fc0ff32c..99f0a463a427615f1a12b87b13a2b5f5e7a0c79b 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1720,6 +1720,12 @@ int main(int argc, char **argv)
   my_umask=0660;		// Default umask for new files
   my_umask_dir=0700;		// Default umask for new directories
   MAIN_THD;
+  /* initialize signal_th and shutdown_th to main_th for default value
+     as we need to initialize them to something safe. They are used
+     when compiled with safemalloc
+  */
+  SIGNAL_THD;
+  SHUTDOWN_THD;
   MY_INIT(argv[0]);		// init my_sys library & pthreads
   tzset();			// Set tzname