return 0;
        }
        dvb->attached = 0x30;
+
        if (dvb->fe) {
                if (dvb_register_frontend(adap, dvb->fe) < 0)
                        return -ENODEV;
+
+               if (dvb->fe2) {
+                       if (dvb_register_frontend(adap, dvb->fe2) < 0)
+                               return -ENODEV;
+                       dvb->fe2->tuner_priv = dvb->fe->tuner_priv;
+                       memcpy(&dvb->fe2->ops.tuner_ops,
+                              &dvb->fe->ops.tuner_ops,
+                              sizeof(struct dvb_tuner_ops));
+               }
        }
-       if (dvb->fe2) {
-               if (dvb_register_frontend(adap, dvb->fe2) < 0)
-                       return -ENODEV;
-               dvb->fe2->tuner_priv = dvb->fe->tuner_priv;
-               memcpy(&dvb->fe2->ops.tuner_ops,
-                      &dvb->fe->ops.tuner_ops,
-                      sizeof(struct dvb_tuner_ops));
-       }
+
        dvb->attached = 0x31;
        return 0;
 }
 
-
 static int port_has_encti(struct ddb_port *port)
 {
        struct device *dev = port->dev->dev;