diff --git a/res/res_snmp.c b/res/res_snmp.c
index 2ccadc4073f0937c30ad210966fb85c07e73ae4e..cbca08a4199605525db3f4fcf39dfdc4165b86dc 100644
--- a/res/res_snmp.c
+++ b/res/res_snmp.c
@@ -106,7 +106,7 @@ static int unload_module(void)
 	ast_verbose(VERBOSE_PREFIX_1 "Unloading [Sub]Agent Module\n");
 
 	res_snmp_dont_stop = 0;
-	return pthread_join(thread, NULL);
+	return ((thread != AST_PTHREADT_NULL) ? pthread_join(thread, NULL) : 0);
 }
 
 static int reload(void)