diff --git a/tests/test_threadpool.c b/tests/test_threadpool.c
index 42181a25cc9e264cdd9eac5955396dc272f15d3c..afb981be605738f15cb0f46d3c85d9214e2fd6b3 100644
--- a/tests/test_threadpool.c
+++ b/tests/test_threadpool.c
@@ -636,6 +636,14 @@ AST_TEST_DEFINE(threadpool_thread_timeout_thrash)
 		ast_mutex_unlock(&tld->lock);
 
 		ast_threadpool_push(pool, simple_task, std);
+
+		res = wait_for_completion(test, std);
+
+		ast_free(std);
+
+		if (res == AST_TEST_FAIL) {
+			goto end;
+		}
 	}
 
 	res = wait_until_thread_state(test, tld, 0, 0);