case 0x0000: // Fujitsu/Siemens DVB-Cable (ves1820/Philips CD1516(??))
                        av7110->fe = ves1820_attach(&philips_cd1516_config,
                                                    &av7110->i2c_adap, read_pwm(av7110));
-                       av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
+                       if (av7110->fe) {
+                               av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
+                       }
                        break;
                }
 
                                /* Siemens DVB-C (full-length card) VES1820/Philips CD1516 */
                                av7110->fe = ves1820_attach(&philips_cd1516_config, &av7110->i2c_adap,
                                                        read_pwm(av7110));
-                               av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
+                               if (av7110->fe) {
+                                       av7110->fe->ops->tuner_ops.set_params = philips_cd1516_tuner_set_params;
+                               }
                                break;
                        case 0x0003:
                                /* Hauppauge DVB-C 2.1 VES1820/ALPS TDBE2 */
                                av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap,
                                                        read_pwm(av7110));
-                               av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
+                               if (av7110->fe) {
+                                       av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
+                               }
                                break;
                        }
                        break;
 
                        // ALPS TDLB7
                        av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap);
-                       av7110->fe->ops->tuner_ops.set_params = alps_tdlb7_tuner_set_params;
+                       if (av7110->fe) {
+                               av7110->fe->ops->tuner_ops.set_params = alps_tdlb7_tuner_set_params;
+                       }
                        break;
 
                case 0x0002: // Hauppauge/TT DVB-C premium rev2.X
 
                        av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110));
-                       av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
+                       if (av7110->fe) {
+                               av7110->fe->ops->tuner_ops.set_params = alps_tdbe2_tuner_set_params;
+                       }
                        break;
 
                case 0x0004: // Galaxis DVB-S rev1.3
                case 0x0008: // Hauppauge/TT DVB-T
 
                        av7110->fe = l64781_attach(&grundig_29504_401_config, &av7110->i2c_adap);
-                       av7110->fe->ops->tuner_ops.set_params = grundig_29504_401_tuner_set_params;
+                       if (av7110->fe) {
+                               av7110->fe->ops->tuner_ops.set_params = grundig_29504_401_tuner_set_params;
+                       }
                        break;
 
                case 0x000A: // Hauppauge/TT Nexus-CA rev1.X
 
                printk("%s: pinnacle 300i dvb setup\n",dev->name);
                dev->dvb.frontend = mt352_attach(&pinnacle_300i,
                                                 &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.calc_regs = mt352_pinnacle_tuner_calc_regs;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.calc_regs = mt352_pinnacle_tuner_calc_regs;
+               }
                break;
 
        case SAA7134_BOARD_AVERMEDIA_777:
                printk("%s: avertv 777 dvb setup\n",dev->name);
                dev->dvb.frontend = mt352_attach(&avermedia_777,
                                                 &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.calc_regs = mt352_aver777_tuner_calc_regs;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.calc_regs = mt352_aver777_tuner_calc_regs;
+               }
                break;
 #endif
 #ifdef HAVE_TDA1004X
        case SAA7134_BOARD_MD7134:
                dev->dvb.frontend = tda10046_attach(&medion_cardbus,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_fmd1216_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_fmd1216_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_fmd1216_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_fmd1216_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_fmd1216_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_fmd1216_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_PHILIPS_TOUGH:
                dev->dvb.frontend = tda10046_attach(&philips_tu1216_60_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tu1216_tuner_60_init;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tu1216_tuner_60_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tu1216_tuner_60_init;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tu1216_tuner_60_set_params;
+               }
                break;
        case SAA7134_BOARD_FLYDVBTDUO:
                dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
                dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_PHILIPS_EUROPA:
                dev->dvb.frontend = tda10046_attach(&philips_europa_config,
                                                    &dev->i2c_adap);
-               dev->original_demod_sleep = dev->dvb.frontend->ops->sleep;
-               dev->dvb.frontend->ops->sleep = philips_europa_demod_sleep;
-               dev->dvb.frontend->ops->tuner_ops.init = philips_europa_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_europa_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_td1316_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->original_demod_sleep = dev->dvb.frontend->ops->sleep;
+                       dev->dvb.frontend->ops->sleep = philips_europa_demod_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_europa_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_europa_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_td1316_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_VIDEOMATE_DVBT_300:
                dev->dvb.frontend = tda10046_attach(&philips_europa_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_europa_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_europa_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_td1316_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_europa_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_europa_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_td1316_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_VIDEOMATE_DVBT_200:
                dev->dvb.frontend = tda10046_attach(&philips_tu1216_61_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tu1216_tuner_61_init;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tu1216_tuner_61_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tu1216_tuner_61_init;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tu1216_tuner_61_set_params;
+               }
                break;
        case SAA7134_BOARD_PHILIPS_TIGER:
                dev->dvb.frontend = tda10046_attach(&philips_tiger_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tiger_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_tiger_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tiger_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tiger_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_tiger_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tiger_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
                dev->dvb.frontend = tda10046_attach(&philips_tiger_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tiger_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_tiger_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tiger_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tiger_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_tiger_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tiger_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_FLYDVBT_LR301:
                dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = philips_tda827x_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = philips_tda827x_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = philips_tda827x_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_FLYDVB_TRIO:
                dev->dvb.frontend = tda10046_attach(&lifeview_trio_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.sleep = lifeview_trio_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = lifeview_trio_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.sleep = lifeview_trio_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = lifeview_trio_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
                dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = ads_duo_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = ads_duo_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = ads_duo_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = ads_duo_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = ads_duo_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = ads_duo_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_TEVION_DVBT_220RF:
                dev->dvb.frontend = tda10046_attach(&tevion_dvbt220rf_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.sleep = tevion_dvb220rf_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = tevion_dvb220rf_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.sleep = tevion_dvb220rf_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = tevion_dvb220rf_tuner_set_params;
+               }
                break;
        case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
                dev->dvb.frontend = tda10046_attach(&ads_tech_duo_config,
                                                    &dev->i2c_adap);
-               dev->dvb.frontend->ops->tuner_ops.init = ads_duo_tuner_init;
-               dev->dvb.frontend->ops->tuner_ops.sleep = ads_duo_tuner_sleep;
-               dev->dvb.frontend->ops->tuner_ops.set_params = ads_duo_tuner_set_params;
+               if (dev->dvb.frontend) {
+                       dev->dvb.frontend->ops->tuner_ops.init = ads_duo_tuner_init;
+                       dev->dvb.frontend->ops->tuner_ops.sleep = ads_duo_tuner_sleep;
+                       dev->dvb.frontend->ops->tuner_ops.set_params = ads_duo_tuner_set_params;
+               }
                break;
 #endif
 #ifdef HAVE_NXT200X