diff -Naur lm_sensors-2.10.7/lib/init.c lm_sensors-2.10.7-2/lib/init.c --- lm_sensors-2.10.7/lib/init.c 2008-07-02 04:23:06.000000000 +1000 +++ lm_sensors-2.10.7-2/lib/init.c 2008-10-24 10:24:32.000000000 +1000 @@ -67,14 +67,26 @@ int sensors_init(FILE *input) { - int res; + int res, res2; sensors_cleanup(); if (sensors_init_sysfs()) { - if ((res = sensors_read_sysfs_bus()) || (res = sensors_read_sysfs_chips())) - return res; + res = sensors_read_sysfs_bus(); + res2 = sensors_read_sysfs_chips(); + if (res && res2) { + if (res) + return res; + if (res2) + return res2; + } } else { - if ((res = sensors_read_proc_bus()) || (res = sensors_read_proc_chips())) - return res; + res = sensors_read_proc_bus(); + res2 = sensors_read_proc_chips(); + if (res && res2) { + if (res) + return res; + if (res2) + return res2; + } } if ((res = sensors_scanner_init(input))) return -SENSORS_ERR_PARSE;