diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 424ff211d2bd0a6e8cc5f9ab7f5ed7eef785ed08..23875e119db50d9ec00a7697f1e7a611f304338a 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -6636,6 +6636,7 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
 			   so queue it up for processing later. */
 			defer_full_frame(thread);
 			AST_LIST_UNLOCK(&active_list);
+			insert_idle_thread(thread);
 			return 1;
 		} else {
 			/* this thread is going to process this frame, so mark it */