diff --git a/tools/peek/wscript b/tools/peek/wscript
index f701269..b719c8b 100644
--- a/tools/peek/wscript
+++ b/tools/peek/wscript
@@ -3,18 +3,17 @@
 
 def build(bld):
 
-    bld(features='cxx',
-        name='peek-ndnpeek-objects',
+    bld.objects(
+        target='ndnpeek-objects',
         source=bld.path.ant_glob('ndnpeek/*.cpp', excl='ndnpeek/main.cpp'),
         use='core-objects')
 
-    bld(features='cxx cxxprogram',
+    bld.program(
         target='../../bin/ndnpeek',
         source='ndnpeek/main.cpp',
-        use='peek-ndnpeek-objects')
+        use='ndnpeek-objects')
 
     bld.program(
-        features='cxx',
         target='../../bin/ndnpoke',
         source='ndn-poke.cpp',
         use='core-objects')
@@ -22,4 +21,4 @@
     ## (for unit tests)
 
     bld(name='peek-objects',
-        use='peek-ndnpeek-objects')
+        use='ndnpeek-objects')
diff --git a/tools/wscript b/tools/wscript
index 7859de3..00a0fdf 100644
--- a/tools/wscript
+++ b/tools/wscript
@@ -5,18 +5,14 @@
 
 def options(opt):
     for subdir in opt.path.ant_glob(['*'], dir=True, src=False):
-        opt.add_option('--enable-%s' % subdir,
-                   help='Build tool %s, enabled by default' % subdir,
-                   action='store_true',
-                   dest='enable_%s' % subdir)
-
-        opt.add_option('--disable-%s' % subdir,
-                   help='Do not build tool %s' % subdir,
-                   action='store_true',
-                   dest='disable_%s' % subdir)
-
-        opt.recurse(str(subdir), mandatory=False)
-
+        tool = subdir.path_from(opt.path)
+        opt.add_option('--enable-%s' % tool,
+                       help='Build tool %s, enabled by default' % tool,
+                       action='store_true', dest='enable_%s' % tool)
+        opt.add_option('--disable-%s' % tool,
+                       help='Do not build tool %s' % tool,
+                       action='store_true', dest='disable_%s' % tool)
+        opt.recurse(str(tool), mandatory=False)
 
 def configure(conf):
     all_tools = set() # all available tools
@@ -26,7 +22,7 @@
     Options.options.disable_pib = True
 
     for subdir in conf.path.ant_glob(['*'], dir=True, src=False):
-        tool = str(subdir)
+        tool = str(subdir.path_from(conf.path))
         all_tools.add(tool)
 
         is_enabled = getattr(Options.options, 'enable_%s' % tool)
@@ -49,8 +45,6 @@
     for tool in conf.env['BUILD_TOOLS']:
         conf.recurse(tool, mandatory=False)
 
-    conf.msg("Tools to build", ", ".join(conf.env['BUILD_TOOLS']))
-
 def build(bld):
     for tool in bld.env['BUILD_TOOLS']:
         bld.recurse(tool)
