--- a/tools/python/xen/util/auxbin.py
+++ b/tools/python/xen/util/auxbin.py
@@ -19,29 +19,31 @@
 import os
 import os.path
 import sys
-from xen.util.path import *
+import xen.util.path
+
+
+class _Path(object):
+    def __init__(self, path=[]):
+        self._path = path
+    def __call__(self, name):
+        for dir in self._path:
+            real = os.path.join(dir, name)
+            if os.path.exists(real):
+                return real
+
+
+path_bin = _Path([xen.util.path.PRIVATE_BINDIR, '/usr/lib/xen/bin', '/usr/sbin', '/sbin', '/usr/bin', '/bin'])
+path_boot = _Path([xen.util.path.XENFIRMWAREDIR, '/usr/lib/xen/boot', '/boot'])
 
 def execute(exe, args = None):
-    exepath = pathTo(exe)
+    exepath = path_bin(exe)
     a = [ exepath ]
     if args:
         a.extend(args)
-    try:
-        os.execv(exepath, a)
-    except (OSError, TypeError), exn:
-        print exepath, ": ", exn
-        sys.exit(1)
-
-SEARCHDIRS = [ BINDIR, SBINDIR, LIBEXEC, PRIVATE_BINDIR, XENFIRMWAREDIR ]
-def pathTo(exebin):
-    for dir in SEARCHDIRS:
-        exe = os.path.join(dir, exebin)
-        if os.path.exists(exe):
-            return exe
-    return None
+    os.execv(exepath, a)
 
 def xen_configdir():
-    return XEN_CONFIG_DIR
+    return xen.util.path.XEN_CONFIG_DIR
 
 def scripts_dir():
-    return XEN_SCRIPT_DIR
+    return xen.util.path.XEN_SCRIPT_DIR
