diff --git a/lib/locking.py b/lib/locking.py
index 3f30c06b9595ad4a49032ce54e2b9d04250323ba..9f5f7f5881d1065ec0eaa8daa265562ca64862f6 100644
--- a/lib/locking.py
+++ b/lib/locking.py
@@ -141,12 +141,15 @@ class _SingleNotifyPipeConditionWaiter(object):
     while True:
       remaining_time = running_timeout.Remaining()
 
-      if remaining_time is not None and remaining_time < 0.0:
-        break
+      if remaining_time is not None:
+        if remaining_time < 0.0:
+          break
 
-      try:
         # Our calculation uses seconds, poll() wants milliseconds
-        result = self._poller.poll(1000 * remaining_time)
+        remaining_time *= 1000
+
+      try:
+        result = self._poller.poll(remaining_time)
       except EnvironmentError, err:
         if err.errno != errno.EINTR:
           raise