diff --git a/stream/cache2.c b/stream/cache2.c
index acdb111f0b..5d2e69d82f 100644
--- a/stream/cache2.c
+++ b/stream/cache2.c
@@ -311,8 +311,7 @@ int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
   int ss = stream->sector_size ? stream->sector_size : STREAM_BUFFER_SIZE;
   cache_vars_t* s;
 
-  if (stream->type==STREAMTYPE_STREAM && stream->fd < 0) {
-    // The stream has no 'fd' behind it, so is non-cacheable
+  if (stream->flags & STREAM_NON_CACHEABLE) {
     mp_msg(MSGT_CACHE,MSGL_STATUS,"\rThis stream is non-cacheable\n");
     return 1;
   }
diff --git a/stream/stream.h b/stream/stream.h
index 2bbe443757..4aed24526a 100644
--- a/stream/stream.h
+++ b/stream/stream.h
@@ -41,6 +41,10 @@
 #define STREAM_SEEK_BW  2
 #define STREAM_SEEK_FW  4
 #define STREAM_SEEK  (STREAM_SEEK_BW|STREAM_SEEK_FW)
+/** This is a HACK for live555 that does not respect the
+    separation between stream an demuxer and thus is not
+    actually a stream cache can not be used */
+#define STREAM_NON_CACHEABLE 8
 
 //////////// Open return code
 #define STREAM_REDIRECTED -2
diff --git a/stream/stream_live555.c b/stream/stream_live555.c
index 619a8d90af..c36c9ff33a 100644
--- a/stream/stream_live555.c
+++ b/stream/stream_live555.c
@@ -44,6 +44,7 @@ static int open_live_rtsp_sip(stream_t *stream,int mode, void* opts, int* file_f
 
   *file_format = DEMUXER_TYPE_RTP;
   stream->type = STREAMTYPE_STREAM;
+  stream->flags = STREAM_NONCACHEABLE;
   return STREAM_OK;
 
 fail: