diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index a3efad58a70a8fbb4af6074dd752e3c6516e8ecb..38a5483ed36f70123887bab40cb9320560ee5bd5 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -3043,7 +3043,7 @@ int unload_module()
 		return -1;
 	}
 	if (!ast_mutex_lock(&monlock)) {
-		if (monitor_thread) {
+		if (monitor_thread && (monitor_thread != -2)) {
 			pthread_cancel(monitor_thread);
 			pthread_kill(monitor_thread, SIGURG);
 			pthread_join(monitor_thread, NULL);