diff -r 62d749961694 linux/drivers/media/dvb/dvb-usb/dib0700_core.c
--- a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Fri Aug 24 02:22:15 2007 +0200
+++ b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c	Sun Oct 07 15:20:00 2007 +0100
@@ -242,14 +242,17 @@ int dib0700_streaming_ctrl(struct dvb_us
 	struct dib0700_state *st = adap->dev->priv;
 	u8 b[4];
 
+	if ((onoff != 2) && (onoff != 3))
+	  return 0;
+
 	b[0] = REQUEST_ENABLE_VIDEO;
 	b[1] = 0x00;
 	b[2] = (0x01 << 4); /* Master mode */
 	b[3] = 0x00;
 
 	deb_info("modifying (%d) streaming state for %d\n", onoff, adap->id);
-
-	if (onoff)
+      
+	if (onoff == 2)
 		st->channel_state |=   1 << adap->id;
 	else
 		st->channel_state &= ~(1 << adap->id);
diff -r 62d749961694 linux/drivers/media/dvb/frontends/dib3000mc.c
--- a/linux/drivers/media/dvb/frontends/dib3000mc.c	Fri Aug 24 02:22:15 2007 +0200
+++ b/linux/drivers/media/dvb/frontends/dib3000mc.c	Sun Oct 07 15:19:19 2007 +0100
@@ -17,6 +17,7 @@
 #include "dvb_frontend.h"
 
 #include "dib3000mc.h"
+#include "dvb-usb.h"
 
 static int debug;
 module_param(debug, int, 0644);
@@ -292,6 +293,7 @@ static int dib3000mc_init(struct dvb_fro
 {
 	struct dib3000mc_state *state = demod->demodulator_priv;
 	struct dibx000_agc_config *agc = state->cfg->agc;
+	struct dvb_usb_adapter *adap = demod->dvb->priv;
 
 	// Restart Configuration
 	dib3000mc_write_word(state, 1027, 0x8000);
@@ -405,12 +407,17 @@ static int dib3000mc_init(struct dvb_fro
 	/* close the i2c-gate */
 	dib3000mc_write_word(state, 769, (1 << 7) );
 
+	adap->props.streaming_ctrl(adap, 2);
+
 	return 0;
 }
 
 static int dib3000mc_sleep(struct dvb_frontend *demod)
 {
 	struct dib3000mc_state *state = demod->demodulator_priv;
+	struct dvb_usb_adapter *adap = demod->dvb->priv;
+
+	adap->props.streaming_ctrl(adap, 3);
 
 	dib3000mc_write_word(state, 1031, 0xFFFF);
 	dib3000mc_write_word(state, 1032, 0xFFFF);
