diff --git a/hapistrano.cabal b/hapistrano.cabal
--- a/hapistrano.cabal
+++ b/hapistrano.cabal
@@ -1,5 +1,5 @@
 name:                hapistrano
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            A deployment library for Haskell applications
 description:         Hapistrano makes it easy to reliably deploy Haskell
                      applications.
@@ -41,3 +41,7 @@
 
   hs-source-dirs:      src
   default-language:    Haskell2010
+
+source-repository head
+  type:     git
+  location: https://github.com/stackbuilders/hapistrano
diff --git a/src/Hapistrano.hs b/src/Hapistrano.hs
--- a/src/Hapistrano.hs
+++ b/src/Hapistrano.hs
@@ -91,9 +91,13 @@
 -- system.
 setupDirs :: RC (Maybe String)
 setupDirs = do
-  pathName <- use $ config . deployPath
-  remoteCommand $ "mkdir -p " ++ joinPath [pathName, "releases"]
+  conf <- use config
 
+  remoteCommand $ intercalate " && "
+    [ "mkdir -p " ++ releasesPath conf
+    , "mkdir -p " ++ cacheRepoPath conf
+    ]
+
 remoteCommand :: String -- ^ The command to run remotely
               -> RC (Maybe String)
 remoteCommand command = do
@@ -342,7 +346,7 @@
     Just rls -> do
       isLnx <- remoteIsLinux
 
-      remoteCommand $ "ln -s " ++ rls ++ " " ++
+      remoteCommand $ "ln -s " ++ releasePath conf rls ++ " " ++
         currentTempSymlinkPath conf ++
         " && " ++ mvCommand isLnx ++ " " ++
         currentTempSymlinkPath conf
