diff -ru v4l-dvb-86817d2750b7/linux/drivers/media/dvb/frontends/dib7000p.c v4l-dvb-86817d2750b7/linux.modif/drivers/media/dvb/frontends/dib7000p.c
--- v4l-dvb-86817d2750b7/linux/drivers/media/dvb/frontends/dib7000p.c	2008-01-18 11:08:21.000000000 +0100
+++ v4l-dvb-86817d2750b7/linux.modif/drivers/media/dvb/frontends/dib7000p.c	2008-01-20 03:55:41.000000000 +0100
@@ -1154,7 +1154,9 @@
 				struct dvb_frontend_parameters *fep)
 {
 	struct dib7000p_state *state = fe->demodulator_priv;
-	int time;
+	int time, retval;
+
+	dib7000p_set_output_mode(state, OUTMODE_HIGH_Z);
 
 	state->current_bandwidth = fep->u.ofdm.bandwidth;
 	dib7000p_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
@@ -1192,10 +1194,12 @@
 		dib7000p_get_frontend(fe, fep);
 	}
 
+	retval = dib7000p_tune(fe, fep);
+
 	/* make this a config parameter */
 	dib7000p_set_output_mode(state, OUTMODE_MPEG2_FIFO);
 
-	return dib7000p_tune(fe, fep);
+	return retval;
 }
 
 static int dib7000p_read_status(struct dvb_frontend *fe, fe_status_t *stat)
