diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index e30ec3029ea7792dee58925a77e78689cf1a0568..a32c64b83e420f65a32bfdd7b90d29508d74b1b3 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -14218,8 +14218,6 @@ static int __unload_module(void)
 	cleanup_thread_list(&active_list);
 	cleanup_thread_list(&dynamic_list);
 
-	sched = ast_sched_thread_destroy(sched);
-
 	ast_netsock_release(netsock);
 	ast_netsock_release(outsock);
 	for (x = 0; x < ARRAY_LEN(iaxs); x++) {
@@ -14261,6 +14259,7 @@ static int __unload_module(void)
 		ast_timer_close(timer);
 	}
 	transmit_processor = ast_taskprocessor_unreference(transmit_processor);
+	sched = ast_sched_thread_destroy(sched);
 
 	con = ast_context_find(regcontext);
 	if (con)