diff --git a/boot b/boot
index f91372464de231a507a8fab1b6d64ea8b896a227..d57dcc846b8ab485fb875360fd505458e520e8e5 100755
--- a/boot
+++ b/boot
@@ -116,7 +116,7 @@ def boot_pkgs():
             if os.path.isfile(cabal):
                 # strip both .cabal and .in
                 pkg = os.path.splitext(os.path.splitext(os.path.basename(cabal))[0])[0]
-                top = package
+                top = os.path.join(*['..'] * len(os.path.normpath(package).split(os.path.sep)))
 
                 ghc_mk = os.path.join(package, 'ghc.mk')
                 print('Creating %s' % ghc_mk)