--- /dev/null
+From ae686aad03ab47762e6aa0017c4f33b5a8791032 Mon Sep 17 00:00:00 2001
+From: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+Date: Tue, 26 Apr 2011 11:27:40 +0200
+Subject: [PATCH] uridecodebin: remove some dead code
+
+... which was dead as pads were never added to the list, and need not be added,
+since removing them is handled by a pad callback.
+---
+ gst/playback/gsturidecodebin.c | 19 -------------------
+ 1 files changed, 0 insertions(+), 19 deletions(-)
+
+diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
+index 8c4e3f2..361b164 100644
+--- a/gst/playback/gsturidecodebin.c
++++ b/gst/playback/gsturidecodebin.c
+@@ -92,7 +92,6 @@ struct _GstURIDecodeBin
+ guint have_type_id; /* have-type signal id from typefind */
+ GSList *decodebins;
+ GSList *pending_decodebins;
+- GSList *srcpads;
+ gint numpads;
+
+ /* for dynamic sources */
+@@ -1429,22 +1428,6 @@ remove_decoders (GstURIDecodeBin * bin, gboolean force)
+ }
+
+ static void
+-remove_pads (GstURIDecodeBin * bin)
+-{
+- GSList *walk;
+-
+- for (walk = bin->srcpads; walk; walk = g_slist_next (walk)) {
+- GstPad *pad = GST_PAD_CAST (walk->data);
+-
+- GST_DEBUG_OBJECT (bin, "removing old pad");
+- gst_pad_set_active (pad, FALSE);
+- gst_element_remove_pad (GST_ELEMENT_CAST (bin), pad);
+- }
+- g_slist_free (bin->srcpads);
+- bin->srcpads = NULL;
+-}
+-
+-static void
+ proxy_unknown_type_signal (GstElement * element, GstPad * pad, GstCaps * caps,
+ GstURIDecodeBin * dec)
+ {
+@@ -2414,14 +2397,12 @@ gst_uri_decode_bin_change_state (GstElement * element,
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ GST_DEBUG ("paused to ready");
+ remove_decoders (decoder, FALSE);
+- remove_pads (decoder);
+ remove_source (decoder);
+ do_async_done (decoder);
+ break;
+ case GST_STATE_CHANGE_READY_TO_NULL:
+ GST_DEBUG ("ready to null");
+ remove_decoders (decoder, TRUE);
+- remove_pads (decoder);
+ remove_source (decoder);
+ break;
+ default: