diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index f31de98bbfa54187f20d7252763bfd52885956a1..9de66769b62301b3b4dd006d85281238b55bd9fc 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -101,6 +101,8 @@ static void fe_release(struct tuner *t)
 
 	if (fe_tuner_ops->release)
 		fe_tuner_ops->release(&t->fe);
+
+	t->fe.ops.analog_demod_ops = NULL;
 }
 
 static void fe_standby(struct tuner *t)
@@ -353,6 +355,8 @@ static void set_type(struct i2c_client *c, unsigned int type,
 		break;
 	}
 
+	ops = t->fe.ops.analog_demod_ops;
+
 	if (((NULL == ops) ||
 	     ((NULL == ops->set_tv_freq) && (NULL == ops->set_radio_freq))) &&
 	    (fe_tuner_ops->set_analog_params)) {