diff --git a/lib/utils.py b/lib/utils.py
index a861d7363da3593a05d26783f0be8670e847721c..8affd828cc2c3e31c765d2914f88f006bb2a29ee 100644
--- a/lib/utils.py
+++ b/lib/utils.py
@@ -1176,6 +1176,7 @@ def SplitTime(seconds):
   @return: Tuple containing (seconds, milliseconds)
 
   """
+  seconds = round(seconds, 3)
   (seconds, fraction) = divmod(seconds, 1.0)
   return (int(seconds), int(round(fraction * 1000, 0)))
 
diff --git a/test/ganeti.utils_unittest.py b/test/ganeti.utils_unittest.py
index 9ebcebc5233e33d3743b8dcd8d4a9702460cd4b9..d190111ff776b226744e467758c32947b417b373 100755
--- a/test/ganeti.utils_unittest.py
+++ b/test/ganeti.utils_unittest.py
@@ -785,6 +785,9 @@ class TestTimeFunctions(unittest.TestCase):
     self.assertEqual(utils.SplitTime(1), (1, 0))
     self.assertEqual(utils.SplitTime(1.5), (1, 500))
     self.assertEqual(utils.SplitTime(1218448917.4809151), (1218448917, 481))
+    self.assertEqual(utils.SplitTime(123.48012), (123, 480))
+    self.assertEqual(utils.SplitTime(123.9995), (124, 0))
+    self.assertEqual(utils.SplitTime(123.999999999), (124, 0))
 
     self.assertEqual(utils.MergeTime((1, 0)), 1.0)
     self.assertEqual(utils.MergeTime((1, 500)), 1.5)