if (res)
                return res;
 
-       res = i2c_isa_add_driver(&lm78_isa_driver);
-       if (res) {
-               i2c_del_driver(&lm78_driver);
-               return res;
-       }
+       /* Don't exit if this one fails, we still want the I2C variants
+          to work! */
+       if (i2c_isa_add_driver(&lm78_isa_driver))
+               isa_address = 0;
 
        return 0;
 }
 
 static void __exit sm_lm78_exit(void)
 {
-       i2c_isa_del_driver(&lm78_isa_driver);
+       if (isa_address)
+               i2c_isa_del_driver(&lm78_isa_driver);
        i2c_del_driver(&lm78_driver);
 }
 
 
        if (res)
                return res;
 
-       res = i2c_isa_add_driver(&w83781d_isa_driver);
-       if (res) {
-               i2c_del_driver(&w83781d_driver);
-               return res;
-       }
+       /* Don't exit if this one fails, we still want the I2C variants
+          to work! */
+       if (i2c_isa_add_driver(&w83781d_isa_driver))
+               isa_address = 0;
 
        return 0;
 }
 static void __exit
 sensors_w83781d_exit(void)
 {
-       i2c_isa_del_driver(&w83781d_isa_driver);
+       if (isa_address)
+               i2c_isa_del_driver(&w83781d_isa_driver);
        i2c_del_driver(&w83781d_driver);
 }
 
 
        /* Now look for clients */
        res = driver->attach_adapter(&isa_adapter);
        if (res) {
-               dev_err(&isa_adapter.dev,
+               dev_dbg(&isa_adapter.dev,
                        "Driver %s failed to attach adapter, unregistering\n",
                        driver->driver.name);
                driver_unregister(&driver->driver);