diff --git a/obmc/mapper/bindings.py b/obmc/mapper/bindings.py
index 43d1af2..820efa7 100644
--- a/obmc/mapper/bindings.py
+++ b/obmc/mapper/bindings.py
@@ -34,7 +34,7 @@
             obj, dbus_interface=MAPPER_IFACE)
 
     @staticmethod
-    def retry(func, retries):
+    def retry(func, retries, interval):
         e = None
         count = 0
         while count < retries:
@@ -46,32 +46,35 @@
                     raise
 
                 count += 1
+                if interval > 0:
+                    from time import sleep
+                    sleep(interval)
         if e:
             raise e
 
-    def get_object(self, path, retries=5, interfaces=[]):
+    def get_object(self, path, retries=5, interfaces=[], interval=0):
         return self.retry(
             lambda: self.iface.GetObject(
                 path, interfaces, signature='sas'),
-            retries)
+            retries, interval)
 
-    def get_subtree_paths(self, path='/', depth=0, retries=5, interfaces=[]):
+    def get_subtree_paths(self, path='/', depth=0, retries=5, interfaces=[], interval=0):
         return self.retry(
             lambda: self.iface.GetSubTreePaths(
                 path, depth, interfaces, signature='sias'),
-            retries)
+            retries, interval)
 
-    def get_subtree(self, path='/', depth=0, retries=5, interfaces=[]):
+    def get_subtree(self, path='/', depth=0, retries=5, interfaces=[], interval=0):
         return self.retry(
             lambda: self.iface.GetSubTree(
                 path, depth, interfaces, signature='sias'),
-            retries)
+            retries, interval)
 
-    def get_ancestors(self, path, retries=5, interfaces=[]):
+    def get_ancestors(self, path, retries=5, interfaces=[], interval=0):
         return self.retry(
             lambda: self.iface.GetAncestors(
                 path, interfaces, signature='sas'),
-            retries)
+            retries, interval)
 
     @staticmethod
     def __try_properties_interface(f, *a):
