diff --git a/obmc/sensors.py b/obmc/sensors.py
index fcb3ee6..e5c79ef 100644
--- a/obmc/sensors.py
+++ b/obmc/sensors.py
@@ -165,20 +165,28 @@
     def setByPoll(self, value):
         scale = self.properties[HwmonSensor.IFACE_NAME]['scale']
         offset = self.properties[HwmonSensor.IFACE_NAME]['offset']
+        try:
+            adjust = self.properties[HwmonSensor.IFACE_NAME]['adjust']
+            if adjust == 0:
+                adjust = 1
+        except:
+            adjust = 1
+
         if self.value_dirty:
             ## new value externally set, so just return to hwmon
             ## process to write value
             self.value_dirty = False
-            val = (
+            val = int((
                 self.properties[SensorValue.IFACE_NAME]['value']
-                - offset) * scale
+                - offset) * adjust)
             return [True, val]
         else:
-            # Keep the val as integer. scale may be floating point
-            val = int(value/scale + offset)
+            # Keep the val as integer. adjust may be floating point
+            val = int(value/adjust + offset)
             if (val != self.value):
                 SensorValue.setValue(self, val)
-                self.check_thresholds(val)
+                # scale the value to check threshold
+                self.check_thresholds(val * (10 ** scale))
                 self.value = val
 
             return [False, 0]
