diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 71844d68ff73477a2d4a42a86266a523a5e5a675..a5765d015ed03804120d106af09150dd3f8141d3 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -1894,7 +1894,9 @@ static int scheduled_destroy(const void *vid)
 
 static void free_signaling_queue_entry(struct signaling_queue_entry *s)
 {
-	ast_free(s->f.data.ptr);
+	if (s->f.datalen) {
+		ast_free(s->f.data.ptr);
+	}
 	ast_free(s);
 }