Index: channels/chan_h323.c =================================================================== --- channels/chan_h323.c (revision 140020) +++ channels/chan_h323.c (working copy) @@ -3225,7 +3225,7 @@ return -1; } if (!ast_mutex_lock(&monlock)) { - if ((monitor_thread != AST_PTHREADT_STOP) && (monitor_thread != AST_PTHREADT_NULL)) { + if (!pthread_equal(monitor_thread, AST_PTHREADT_STOP) && !pthread_equal(monitor_thread, AST_PTHREADT_NULL)) { /* this causes a seg, anyone know why? */ if (monitor_thread != pthread_self()) pthread_cancel(monitor_thread);