Index: trunk/src/samhain.c
===================================================================
--- trunk/src/samhain.c	(revision 144)
+++ trunk/src/samhain.c	(revision 145)
@@ -1723,5 +1723,6 @@
 	    }
 	  
-	  if (sig_config_read_again == 1) /* SIGHUP */
+	  if (sig_config_read_again == 1 && /* SIGHUP */
+	      sh_global_suspend_flag == 0)
 	    {
 	      TPT((0, FIL__, __LINE__, _("msg=<Re-read configuration.>\n")))
Index: trunk/src/sh_static.c
===================================================================
--- trunk/src/sh_static.c	(revision 144)
+++ trunk/src/sh_static.c	(revision 145)
@@ -94,8 +94,8 @@
 #define DO_GETXXKEY_R_PATHNAME  _PATH_PASSWD
 
-static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
-			   GETXXKEY_R_ENTTYPE *__restrict resultbuf,
-			   char *__restrict buffer, size_t buflen,
-			   GETXXKEY_R_ENTTYPE **__restrict result)
+int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
+		    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
+		    char *__restrict buffer, size_t buflen,
+		    GETXXKEY_R_ENTTYPE **__restrict result)
 {
   FILE *stream;
@@ -142,8 +142,8 @@
 #define DO_GETXXKEY_R_PATHNAME  _PATH_GROUP
 
-static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
-			   GETXXKEY_R_ENTTYPE *__restrict resultbuf,
-			   char *__restrict buffer, size_t buflen,
-			   GETXXKEY_R_ENTTYPE **__restrict result)
+int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
+		    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
+		    char *__restrict buffer, size_t buflen,
+		    GETXXKEY_R_ENTTYPE **__restrict result)
 {
   FILE *stream;
@@ -190,8 +190,8 @@
 #define DO_GETXXKEY_R_PATHNAME  _PATH_PASSWD
 
-static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
-			   GETXXKEY_R_ENTTYPE *__restrict resultbuf,
-			   char *__restrict buffer, size_t buflen,
-			   GETXXKEY_R_ENTTYPE **__restrict result)
+int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
+		    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
+		    char *__restrict buffer, size_t buflen,
+		    GETXXKEY_R_ENTTYPE **__restrict result)
 {
   FILE *stream;
@@ -238,8 +238,8 @@
 #define DO_GETXXKEY_R_PATHNAME  _PATH_GROUP
 
-static int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
-			   GETXXKEY_R_ENTTYPE *__restrict resultbuf,
-			   char *__restrict buffer, size_t buflen,
-			   GETXXKEY_R_ENTTYPE **__restrict result)
+int GETXXKEY_R_FUNC(DO_GETXXKEY_R_KEYTYPE key,
+		    GETXXKEY_R_ENTTYPE *__restrict resultbuf,
+		    char *__restrict buffer, size_t buflen,
+		    GETXXKEY_R_ENTTYPE **__restrict result)
 {
   FILE *stream;
@@ -1168,7 +1168,7 @@
 	DPRINTF("Looking up type %d answer for '%s'\n", type, name);
 
-	LOCK;
+	SH_MUTEX_LOCK_UNSAFE(resolv_lock);
 	ns %= nscount;
-	UNLOCK;
+	SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
 
 	while (retries++ < MAX_RETRIES) {
@@ -1181,10 +1181,10 @@
 
 		/* Mess with globals while under lock */
-		LOCK;
+		SH_MUTEX_LOCK_UNSAFE(resolv_lock);
 		++id;
 		id &= 0xffff;
 		h.id = id;
 		dns = nsip[ns];
-		UNLOCK;
+		SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
 
 		h.qdcount = 1;
@@ -1281,11 +1281,11 @@
 		DPRINTF("id = %d, qr = %d\n", h.id, h.qr);
 
-		LOCK;
+		SH_MUTEX_LOCK_UNSAFE(resolv_lock);
 		if ((h.id != id) || (!h.qr)) {
-			UNLOCK;
+			SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
 			/* unsolicited */
 			goto again;
 		}
-		UNLOCK;
+		SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
 
 
@@ -1369,7 +1369,7 @@
 		    } else {
 			/* next server, first search */
-			LOCK;
+			SH_MUTEX_LOCK_UNSAFE(resolv_lock);
 			ns = (ns + 1) % nscount;
-			UNLOCK;
+			SH_MUTEX_UNLOCK_UNSAFE(resolv_lock);
 			variant = 0;
 		    }
