diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h
index 70a08abce30688b4d47fbc82533ab233a1bad40d..f09daa505b746b5df0233958d1ab14834ae8d22f 100755
--- a/include/asterisk/lock.h
+++ b/include/asterisk/lock.h
@@ -19,6 +19,17 @@
 #define AST_PTHREADT_NULL (pthread_t) -1
 #define AST_PTHREADT_STOP (pthread_t) -2
 
+/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes
+   and will not run without them. */
+
+#ifdef PTHREAD_MUTEX_RECURSIVE_NP
+#define AST_MUTEX_INITIALIZER      PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#define AST_MUTEX_KIND             PTHREAD_MUTEX_RECURSIVE_NP
+#else
+#define AST_MUTEX_INITIALIZER      PTHREAD_MUTEX_INITIALIZER
+#define AST_MUTEX_KIND             PTHREAD_MUTEX_RECURSIVE
+#endif
+
 #ifdef DEBUG_THREADS
 
 #ifdef THREAD_CRASH
@@ -30,12 +41,6 @@
 #include <stdio.h>
 #include <unistd.h>
 
-/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes
-   and will not run without them. */
-
-#define AST_MUTEX_INITIALIZER      PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-#define AST_MUTEX_KIND             PTHREAD_MUTEX_RECURSIVE_NP
-
 struct ast_mutex_info {
 	pthread_mutex_t mutex;
 	char *file;
@@ -155,11 +160,6 @@ static inline int __ast_pthread_mutex_destroy(char *filename, int lineno, char *
 
 #else /* DEBUG_THREADS */
 
-/* From now on, Asterisk REQUIRES Recursive (not error checking) mutexes
-   and will not run without them. */
-#define AST_MUTEX_INITIALIZER      PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-#define AST_MUTEX_KIND             PTHREAD_MUTEX_RECURSIVE_NP
-
 typedef pthread_mutex_t ast_mutex_t;
 
 #define ast_mutex_lock(t) pthread_mutex_lock(t)