diff --git a/Makefile b/Makefile
index 5a6a51c49ecde6127864cd75cb6b437b4b879f19..10483c3553942a14538eb12d055f15939ab11128 100755
--- a/Makefile
+++ b/Makefile
@@ -138,8 +138,8 @@ CFLAGS+=$(shell if [ -f /usr/include/osp/osp.h ]; then echo "-DOSP_SUPPORT -I/us
 
 ifeq (${OSARCH},FreeBSD)
 OSVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
-CFLAGS+=$(if ${OSVERSION}<500016,-D_THREAD_SAFE)
-LIBS+=$(if ${OSVERSION}<502102,-lc_r,-pthread)
+CFLAGS+=$(shell if test ${OSVERSION} -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
+LIBS+=$(shell if test  ${OSVERSION} -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
 INCLUDE+=-I/usr/local/include
 CFLAGS+=$(shell if [ -d /usr/local/include/spandsp ]; then echo "-I/usr/local/include/spandsp"; fi)
 endif # FreeBSD
diff --git a/asterisk.c b/asterisk.c
index 3c4d230eecb5cbda556324c05bd0d081f09cd987..30740cd59394fe3f807b71c832d79bff7a085d27 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -1728,10 +1728,6 @@ int main(int argc, char *argv[])
 	printf(term_end());
 	fflush(stdout);
 
-	/* Test recursive mutex locking. */
-	if (test_for_thread_safety())
-		ast_verbose("Warning! Asterisk is not thread safe.\n");
-
 	if (option_console && !option_verbose) 
 		ast_verbose("[ Reading Master Configuration ]");
 	ast_readconfig();
@@ -1796,6 +1792,10 @@ int main(int argc, char *argv[])
 			ast_log(LOG_WARNING, "Unable to open pid file '%s': %s\n", (char *)ast_config_AST_PID, strerror(errno));
 	}
 
+	/* Test recursive mutex locking. */
+	if (test_for_thread_safety())
+		ast_verbose("Warning! Asterisk is not thread safe.\n");
+
 	ast_makesocket();
 	sigemptyset(&sigs);
 	sigaddset(&sigs, SIGHUP);