diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h
index 572d814a8ec51453afe41e3e7f07cfdbb8a55c1c..f1a061cc8afda0dff0037dea46e96b71b2173867 100644
--- a/include/asterisk/lock.h
+++ b/include/asterisk/lock.h
@@ -83,7 +83,7 @@
 #define AST_PTHREADT_NULL (pthread_t) -1
 #define AST_PTHREADT_STOP (pthread_t) -2
 
-#if defined(SOLARIS) || defined(BSD)
+#if (defined(SOLARIS) || defined(BSD)) && !defined(__Darwin__)
 #define AST_MUTEX_INIT_W_CONSTRUCTORS
 #endif /* SOLARIS || BSD */
 
@@ -460,10 +460,6 @@ static inline int __ast_pthread_mutex_destroy(const char *filename, int lineno,
 		__ast_mutex_logger("%s line %d (%s): Error destroying mutex %s: %s\n",
 				   filename, lineno, func, mutex_name, strerror(res));
 	}
-#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-	else
-		t->mutex = PTHREAD_MUTEX_INIT_VALUE;
-#endif
 	ast_reentrancy_lock(lt);
 	lt->file[0] = filename;
 	lt->lineno[0] = lineno;