diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index f159089..b1278d0 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -957,6 +957,7 @@ gst_file_src_get_size (GstBaseSrc * basesrc, guint64 * size)
   if (fstat (src->fd, &stat_results) < 0)
     goto could_not_stat;
 
+  basesrc->size = stat_results.st_size ;
   *size = stat_results.st_size;
 
   return TRUE;
@@ -964,7 +965,15 @@ gst_file_src_get_size (GstBaseSrc * basesrc, guint64 * size)
   /* ERROR */
 could_not_stat:
   {
-    return FALSE;
+    switch (errno) {
+    case ESTALE : 
+      *size = basesrc->size ; 
+      break ;
+    default: 
+      *size = 0 ; 
+      break ;
+    }
+    return TRUE;
   }
 }
 
