Index: /trunk/gst-libraries/gstreamer/0.10.13/plugins/elements/gstmultiqueue.c
===================================================================
--- /trunk/gst-libraries/gstreamer/0.10.13/plugins/elements/gstmultiqueue.c (revision 6432)
+++ /trunk/gst-libraries/gstreamer/0.10.13/plugins/elements/gstmultiqueue.c (revision 6510)
@@ -1019,4 +1019,15 @@
   GstSingleQueue *sq = gst_pad_get_element_private (pad);
 
+  /* FIXME: If a demuxer calls gst_pad_alloc_buffer right after exposing a raw pad
+     inside decodebin2, pipeline will deadlock since the raw pad is set as 
+     blocked by decodebin2. This workaround allows multiqueue allocate the buffer
+     instead of blocking.
+  */
+  if (GST_PAD_IS_BLOCKED (sq->srcpad) && !gst_pad_is_linked (sq->srcpad)) {
+    GST_INFO ("allocating buffer to avoid potential deadlock");
+    *buf = gst_buffer_new_and_alloc (size);
+    return GST_FLOW_OK;
+  }
+
   return gst_pad_alloc_buffer (sq->srcpad, offset, size, caps, buf);
 }
