--- gst/imagefreeze/gstimagefreeze.c	Tue Nov 30 14:10:31 2010
+++ gst/imagefreeze/gstimagefreeze.c	Tue Nov 30 14:04:07 2010
@@ -553,6 +553,15 @@
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_EOS:
+      if (self->buffer) {
+        GST_DEBUG_OBJECT (pad, "Dropping event");
+        gst_event_unref (event);
+        ret = TRUE;
+      } else {
+        /* if we receive EOS before a buffer arrives, then let it pass */
+        ret = gst_pad_push_event (self->srcpad, event);
+      }
+      break;
     case GST_EVENT_NEWSEGMENT:
       GST_DEBUG_OBJECT (pad, "Dropping event");
       gst_event_unref (event);
