Index: trunk/src/sh_log_check.c
===================================================================
--- trunk/src/sh_log_check.c	(revision 334)
+++ trunk/src/sh_log_check.c	(revision 335)
@@ -1167,4 +1167,9 @@
       else
 	return SH_MOD_FAILED;
+    }
+  else if (arg != NULL && arg->initval == SH_MOD_THREAD &&
+	   (sh.flag.isdaemon == S_TRUE || sh.flag.loop == S_TRUE))
+    {
+      return SH_MOD_THREAD;
     }
 #endif
Index: trunk/src/sh_portcheck.c
===================================================================
--- trunk/src/sh_portcheck.c	(revision 334)
+++ trunk/src/sh_portcheck.c	(revision 335)
@@ -1192,4 +1192,9 @@
 	return SH_MOD_FAILED;
     }
+  else if (arg != NULL && arg->initval == SH_MOD_THREAD &&
+	   (sh.flag.isdaemon == S_TRUE || sh.flag.loop == S_TRUE))
+    {
+      return SH_MOD_THREAD;
+    }
 #endif
   return sh_portchk_init_internal();
Index: trunk/src/sh_processcheck.c
===================================================================
--- trunk/src/sh_processcheck.c	(revision 334)
+++ trunk/src/sh_processcheck.c	(revision 335)
@@ -1331,4 +1331,9 @@
 	return SH_MOD_FAILED;
     }
+  else if (arg != NULL && arg->initval == SH_MOD_THREAD &&
+	   (sh.flag.isdaemon == S_TRUE || sh.flag.loop == S_TRUE))
+    {
+      return SH_MOD_THREAD;
+    }
 #endif
   return sh_prochk_init_internal();
Index: trunk/src/sh_pthread.c
===================================================================
--- trunk/src/sh_pthread.c	(revision 334)
+++ trunk/src/sh_pthread.c	(revision 335)
@@ -153,4 +153,5 @@
   sh_mtype * this_module = (sh_mtype *) arg;
   this_module->mod_cleanup();
+  this_module->initval = -1;
   return;
 }
Index: trunk/src/sh_registry.c
===================================================================
--- trunk/src/sh_registry.c	(revision 334)
+++ trunk/src/sh_registry.c	(revision 335)
@@ -237,4 +237,9 @@
       else
 	return SH_MOD_FAILED;
+    }
+  else if (arg != NULL && arg->initval == SH_MOD_THREAD &&
+	   (sh.flag.isdaemon == S_TRUE || sh.flag.loop == S_TRUE))
+    {
+      return SH_MOD_THREAD;
     }
 #endif
Index: trunk/src/sh_suidchk.c
===================================================================
--- trunk/src/sh_suidchk.c	(revision 334)
+++ trunk/src/sh_suidchk.c	(revision 335)
@@ -1399,4 +1399,9 @@
 	return SH_MOD_FAILED;
     }
+  else if (arg != NULL && arg->initval == SH_MOD_THREAD &&
+	   (sh.flag.isdaemon == S_TRUE || sh.flag.loop == S_TRUE))
+    {
+      return SH_MOD_THREAD;
+    }
 #endif
 
