diff --git a/redo.hs b/redo.hs
index f0e816a..01c6a2e 100644
--- a/redo.hs
+++ b/redo.hs
@@ -48,7 +48,12 @@ redo target dir = do
          createDirectoryIfMissing True metaDepsDir
          writeMD5 target path
          oldEnv <- getEnvironment
-         let newEnv = toList $ adjust (++ ":.") "PATH" $ insert "REDO_TARGET" target $ fromList oldEnv
+         redoPath <- lookupEnv "REDO_PATH"
+         let
+           redoPath' = case redoPath of
+             Just p -> p
+             _ -> "."
+           newEnv = toList $ adjust (++ (':' : redoPath')) "PATH" $ insert "REDO_TARGET" target $ fromList oldEnv
          (_, _, _, ph) <- createProcess $ (shell $ cmd path) {env = Just newEnv}
          exit <- waitForProcess ph
          case exit of