*** gstqueue.c.orig	Mon Mar 24 11:45:12 2003
--- gstqueue.c	Wed Mar 26 13:05:13 2003
***************
*** 581,586 ****
--- 581,587 ----
    gboolean res;
    gint event_type;
    gint flag_flush = 0;
+   gboolean writer = FALSE;
  
    queue = GST_QUEUE (GST_OBJECT_PARENT (pad));
  
***************
*** 606,615 ****
--- 607,618 ----
      case GST_EVENT_FLUSH:
        GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "FLUSH event, flushing queue\n");
        gst_queue_locked_flush (queue);
+       writer = queue->writer;
        break;
      case GST_EVENT_SEEK:
        if (flag_flush) {
          gst_queue_locked_flush (queue);
+         writer = queue->writer;
        }
      default:
        break;
***************
*** 617,622 ****
--- 620,631 ----
  
  done:
    g_mutex_unlock (queue->qlock);
+ 
+   if (writer)
+   {
+     GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "signalling not_full following flush on src pad\n");
+     g_cond_signal (queue->not_full);
+   }
  
    /* we have to claim success, but we don't really know */
    return res;
