diff --git a/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java b/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java
index 563dbab1e7df31d3325505084c535c47367018aa..4930b75e8ab3781a296fa3c14cdcd1bef4caa031 100644
--- a/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java
+++ b/src/org/jitsi/impl/neomedia/protocol/RewritablePullBufferDataSource.java
@@ -118,12 +118,20 @@ public PullBufferDataSource getWrappedDataSource()
     @Override
     public Object getControl(String controlType)
     {
-        /*
-         * The super implements a delegate so we can be sure that it delegates
-         * the invocation of Controls#getControl(String) to the wrapped
-         * dataSource.
-         */
-        return AbstractControls.queryInterface(dataSource, controlType);
+        if (InbandDTMFDataSource.class.getName().equals(controlType)
+                || MuteDataSource.class.getName().equals(controlType))
+        {
+            return this;
+        }
+        else
+        {
+            /*
+             * The super implements a delegate so we can be sure that it
+             * delegates the invocation of Controls#getControl(String) to the
+             * wrapped dataSource.
+             */
+            return AbstractControls.queryInterface(dataSource, controlType);
+        }
     }
 
     /**
diff --git a/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java b/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java
index 66ee434fb68e243c53d86a3df511005d8c2613aa..cf0170c1b98a9f638d99c35d966e4ff3a6fc8b46 100644
--- a/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java
+++ b/src/org/jitsi/impl/neomedia/protocol/RewritablePushBufferDataSource.java
@@ -68,12 +68,20 @@ public RewritablePushBufferDataSource(PushBufferDataSource dataSource)
     @Override
     public Object getControl(String controlType)
     {
-        /*
-         * The super implements a delegate so we can be sure that it delegates
-         * the invocation of Controls#getControl(String) to the wrapped
-         * dataSource.
-         */
-        return AbstractControls.queryInterface(dataSource, controlType);
+        if (InbandDTMFDataSource.class.getName().equals(controlType)
+                || MuteDataSource.class.getName().equals(controlType))
+        {
+            return this;
+        }
+        else
+        {
+            /*
+             * The super implements a delegate so we can be sure that it
+             * delegates the invocation of Controls#getControl(String) to the
+             * wrapped dataSource.
+             */
+            return AbstractControls.queryInterface(dataSource, controlType);
+        }
     }
 
     /**