diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c
index 018619439d14b590b0aa2cc8709103e1b46257b8..0a524e253fb09d8592a0e650b5614ba66864545f 100644
--- a/channels/iax2-parser.c
+++ b/channels/iax2-parser.c
@@ -973,7 +973,7 @@ struct iax_frame *iax_frame_new(int direction, int datalen)
 	return fr;
 }
 
-static void __iax_frame_free(struct iax_frame *fr, int cache)
+void iax_frame_free(struct iax_frame *fr)
 {
 	struct iax_frames *iax_frames;
 
@@ -988,10 +988,6 @@ static void __iax_frame_free(struct iax_frame *fr, int cache)
 	}
 	fr->direction = 0;
 	ast_atomic_fetchadd_int(&frames, -1);
-	if (!cache) {
-		free(fr);
-		return;
-	}
 
 	if (!(iax_frames = ast_threadstorage_get(&frame_cache, sizeof(*iax_frames)))) {
 		free(fr);
@@ -1012,11 +1008,6 @@ static void frame_cache_cleanup(void *data)
 	free(frames);
 }
 
-void iax_frame_free(struct iax_frame *fr)
-{
-	__iax_frame_free(fr, 1);
-}
-
 int iax_get_frames(void) { return frames; }
 int iax_get_iframes(void) { return iframes; }
 int iax_get_oframes(void) { return oframes; }