diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -13,7 +13,8 @@
 import Distribution.PackageDescription
 import Distribution.Simple.UserHooks
 import Distribution.Package
-import Data.Version
+import Distribution.Version
+-- import Data.Version
 
 main :: IO ()
 main = defaultMainWithHooks $
diff --git a/shuffle.cabal b/shuffle.cabal
--- a/shuffle.cabal
+++ b/shuffle.cabal
@@ -1,5 +1,5 @@
 Name:                shuffle
-Version:             0.1.3.3
+Version:             0.1.4.0
 Copyright:           Utrecht University, Department of Information and Computing Sciences, Software Technology group
 Description:         Shuffle tool used by UHC (Utrecht Haskell Compiler)
 Synopsis:            Shuffle tool for UHC
@@ -11,7 +11,7 @@
 Maintainer:          uhc-developers@lists.science.uu.nl
 Category:            Development
 Build-Type:          Custom
-Cabal-Version:       >= 1.8
+Cabal-Version:       >= 1.23
 Extra-Source-Files:  uuagc_options,
                      changelog.md,
                      src/UHC/Shuffle/AspectExprAbsSyn.ag,
@@ -29,7 +29,8 @@
 
 Library
   Hs-Source-Dirs:    src
-  Extensions:        RankNTypes, TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  default-language:  Haskell2010
+  default-extensions:RankNTypes, TypeSynonymInstances, FlexibleInstances, FlexibleContexts
   Exposed-Modules:   UHC.Shuffle,
                      UHC.Shuffle.Version,
                      Distribution.Simple.Shuffle
@@ -49,9 +50,9 @@
                      array >= 0.4,
                      uulib >= 0.9,
                      uuagc >= 0.9.40.3,
-                     uuagc-cabal >= 1.0.3.0,
+                     uuagc-cabal >= 1.1.0.0,
                      uhc-util >= 0.1.5.5,
-                     Cabal >= 1.14,
+                     Cabal >= 2.0.0.2,
                      filepath >= 1.2
   if flag(network-uri)
     build-depends:   network-uri >= 2.6,
@@ -61,6 +62,13 @@
 
 Executable shuffle
   Hs-Source-Dirs:    src-main
+  default-language:  Haskell2010
   Main-Is:           Main.hs
   Build-Depends:     base >= 4 && < 5,
-                     shuffle >= 0.1.3.3
+                     shuffle
+
+custom-setup
+  setup-depends:     base >= 4 && < 5,
+                     uuagc-cabal >= 1.1.0.0,
+                     uuagc >= 0.9.40.3,
+                     Cabal >= 2.0.0.2
diff --git a/src/Distribution/Simple/Shuffle.hs b/src/Distribution/Simple/Shuffle.hs
--- a/src/Distribution/Simple/Shuffle.hs
+++ b/src/Distribution/Simple/Shuffle.hs
@@ -5,12 +5,13 @@
 import Distribution.PackageDescription (PackageDescription (..), BuildInfo (..), Executable (..),
                                         Library (..), TestSuite (..))
 import Distribution.Simple.LocalBuildInfo (LocalBuildInfo (..))
-import Distribution.Simple.Utils (die, warn, info, notice, findFileWithExtension', 
+import Distribution.Simple.Utils (dieNoVerbosity, warn, info, notice, findFileWithExtension', 
                                   createDirectoryIfMissingVerbose, getDirectoryContentsRecursive)
 import Distribution.Simple.Setup (BuildFlags(..), SDistFlags(..), fromFlagOrDefault)
 import Distribution.Verbosity (Verbosity, normal)
 import Distribution.ParseUtils (runP, parseOptCommaList, parseFilePathQ, ParseResult (..))
 import Distribution.ModuleName (fromString, ModuleName)
+import Distribution.Types.UnqualComponentName (unUnqualComponentName)
 
 import Control.Monad (forM, forM_, when)
 import Data.Char (isSpace)
@@ -59,7 +60,7 @@
 parseFileList :: String -> String -> Verbosity -> IO [FilePath]
 parseFileList fieldName field verbosity =
   case runP 0 fieldName (parseOptCommaList parseFilePathQ) field of
-    ParseFailed err    -> die $ show err
+    ParseFailed err    -> dieNoVerbosity $ show err
     ParseOk warnings r -> mapM_ (warn verbosity . show) warnings >> return r
 
 toModuleName :: FilePath -> ModuleName
@@ -84,7 +85,7 @@
   deps <- forM files $ \inFile -> do
     mbPath <- findFileWithExtension' [takeExtension inFile] (hsSourceDirs bi) (dropExtension inFile)
     case mbPath of
-      Nothing -> die $ "can't find source for " ++ inFile ++ " in " ++ intercalate ", " (hsSourceDirs bi)
+      Nothing -> dieNoVerbosity $ "can't find source for " ++ inFile ++ " in " ++ intercalate ", " (hsSourceDirs bi)
       Just (dir,file) -> do
         -- Preprocess this file
         let outFile = outDir </> replaceExtension file "ag"
@@ -146,7 +147,7 @@
         return $ (mods, newBi)
   -- Add all options and continue with original hook
   exes <- forM (executables pd) $ \exe -> do
-    (mods, newBi) <- addOpts (buildDir lbi </> exeName exe </> exeName exe ++ "-tmp") (buildInfo exe)
+    (mods, newBi) <- addOpts (buildDir lbi </> unUnqualComponentName (exeName exe) </> unUnqualComponentName (exeName exe) ++ "-tmp") (buildInfo exe)
     let newBi' = newBi { otherModules = mods ++ otherModules newBi }
     return $ exe { buildInfo = newBi' }
   lib <- case library pd of
@@ -156,7 +157,7 @@
                         , exposedModules = mods ++ exposedModules l }
     Nothing -> return Nothing
   tests <- forM (testSuites pd) $ \test -> do
-    (mods, newBi) <- addOpts (buildDir lbi </> testName test </> testName test ++ "-tmp") (testBuildInfo test)
+    (mods, newBi) <- addOpts (buildDir lbi </> unUnqualComponentName (testName test) </> unUnqualComponentName (testName test) ++ "-tmp") (testBuildInfo test)
     let newBi' = newBi { otherModules = mods ++ otherModules newBi }
     return $ test { testBuildInfo = newBi' }
   origBuildHook (pd { executables = exes, library = lib, testSuites = tests }) lbi hook bf
@@ -208,7 +209,7 @@
 getOpts buildInfo tp extra inFile = do
   if null errs
     then return (unwords ws, opts, f, frest)
-    else die $ unlines errs
+    else dieNoVerbosity $ unlines errs
   where
     (opts, f, frest, errs) = parseOpts ws
     ws = case ("x-shuffle-" ++ tp) `lookup` customFieldsBI buildInfo of
@@ -235,7 +236,7 @@
   deps <- forM files $ \inFile -> do
     mbPath <- findFileWithExtension' [takeExtension inFile] (hsSourceDirs bi) (dropExtension inFile)
     case mbPath of
-      Nothing -> die $ "can't find source for " ++ inFile ++ " in " ++ intercalate ", " (hsSourceDirs bi)
+      Nothing -> dieNoVerbosity $ "can't find source for " ++ inFile ++ " in " ++ intercalate ", " (hsSourceDirs bi)
       Just (dir,file) -> do
         let f1 = normalise $ dir </> file
         -- Find dependencies
diff --git a/src/UHC/Shuffle.hs b/src/UHC/Shuffle.hs
--- a/src/UHC/Shuffle.hs
+++ b/src/UHC/Shuffle.hs
@@ -14,22 +14,22 @@
 import qualified Data.Set as Set
 import qualified Data.Map as Map
 import           Data.Map(Map)
-import            Data.Set(Set)
-import            System.Exit
-import            System.Environment
-import            System.IO
-import            System.Console.GetOpt
-import            UHC.Util.ParseUtils
-import            UHC.Util.DependencyGraph
-import            UHC.Util.FPath
-import            UHC.Util.Pretty
-import            UHC.Shuffle.Common
-import            UHC.Shuffle.MainAG
-import            UHC.Shuffle.ChunkParser
-import            UHC.Shuffle.CDoc
-import            UHC.Shuffle.CDocSubst
+import           Data.Set(Set)
+import           System.Exit
+import           System.Environment
+import           System.IO
+import           System.Console.GetOpt
+import           UHC.Util.ParseUtils
+import           UHC.Util.DependencyGraph
+import           UHC.Util.FPath
+import           UHC.Util.Pretty
+import           UHC.Shuffle.Common
+import           UHC.Shuffle.MainAG
+import           UHC.Shuffle.ChunkParser
+import           UHC.Shuffle.CDoc
+import           UHC.Shuffle.CDocSubst
 import qualified UHC.Shuffle.Version as Version
-import            Data.Char
+import           Data.Char
 
 -------------------------------------------------------------------------
 -- main
diff --git a/src/UHC/Shuffle/Version.hs b/src/UHC/Shuffle/Version.hs
--- a/src/UHC/Shuffle/Version.hs
+++ b/src/UHC/Shuffle/Version.hs
@@ -1,2 +1,2 @@
 module UHC.Shuffle.Version where
-version = "0.1.3.3"
+version = "0.1.4.0"
