diff --git a/sensors/io_sensors.py b/sensors/io_sensors.py
index 219a48f..615d381 100644
--- a/sensors/io_sensors.py
+++ b/sensors/io_sensors.py
@@ -47,22 +47,26 @@
 
 
 def get_latency(stat1, stat2):
-    disks = set([ i.split('.')[0] for i in stat1 ])
+    disks = set(i.split('.', 1)[0] for i in stat1)
     results = {}
+
     for disk in disks:
-        rdc = disk+'.reads_completed'
-        wrc = disk+'.writes_completed'
-        rdt = disk+'.rtime'
-        wrt = disk+'.wtime'
-        if all(i in stat1 for i in [rdc, wrc, rdt, wrt]) and \
-           all(i in stat2 for i in [rdc, wrc, rdt, wrt]):
-            lat = 0.0
-            if  abs((stat1[rdc].value + stat1[wrc].value) - \
-                    (stat2[rdc].value + stat2[wrc].value)) > 0:
-                lat = abs(float((stat1[rdt].value + stat1[wrt].value) - \
-                          (stat2[rdt].value + stat2[wrt].value)) / \
-                          (stat1[rdc].value + stat1[wrc].value) - \
-                          (stat2[rdc].value + stat2[wrc].value))
-            results[disk+'.latence'] = SensorInfo(lat, False)
+        rdc = disk + '.reads_completed'
+        wrc = disk + '.writes_completed'
+        rdt = disk + '.rtime'
+        wrt = disk + '.wtime'
+        lat = 0.0
+
+        io_ops1 = stat1[rdc].value + stat1[wrc].value
+        io_ops2 = stat2[rdc].value + stat2[wrc].value
+
+        diops = io_ops2 - io_ops1
+
+        if diops != 0:
+            io1 = stat1[rdt].value + stat1[wrt].value
+            io2 = stat2[rdt].value + stat2[wrt].value
+            lat = abs(float(io1 - io2)) / diops
+
+        results[disk + '.latence'] = SensorInfo(lat, False)
 
     return results
