diff --git a/modules/demux/live555.cpp b/modules/demux/live555.cpp
index fd8450276d715091644deadfdab4e7b8a3fc226c..8e429413a43efe9855abcd668c770a06c9421db6 100644
--- a/modules/demux/live555.cpp
+++ b/modules/demux/live555.cpp
@@ -783,6 +783,7 @@ static int SessionsSetup( demux_t *p_demux )
             tk->p_buffer    = (uint8_t *)malloc( 65536 );
             if( !tk->p_buffer )
             {
+                free( tk );
                 delete iter;
                 return VLC_ENOMEM;
             }