diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 076ad18a1ba6159ddb30543dd3f276ef2b3100c9..d85e7102f30a1bcb0184c220e12443bf1a2c5a20 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -8094,7 +8094,8 @@ static int __unload_module(void)
 #ifdef ZAPATA_PRI
 	int i;
 	for(i=0;i<NUM_SPANS;i++) {
-		pthread_cancel(pris[i].master);
+		if (pris[i].master != AST_PTHREADT_NULL) 
+			pthread_cancel(pris[i].master);
 	}
 	ast_cli_unregister(&pri_debug);
 	ast_cli_unregister(&pri_no_debug);
@@ -8798,6 +8799,7 @@ int load_module(void)
 	memset(pris, 0, sizeof(pris));
 	for (y=0;y<NUM_SPANS;y++) {
 		pris[y].offset = -1;
+		pris[y].master = AST_PTHREADT_NULL;
 		for (i=0;i<NUM_DCHANS;i++)
 			pris[y].fds[i] = -1;
 	}