diff --git a/Shellish.hs b/Shellish.hs
--- a/Shellish.hs
+++ b/Shellish.hs
@@ -342,8 +342,10 @@
 -- original file name is used, in that directory.
 cp :: FilePath -> FilePath -> ShIO ()
 cp from to = do
+  from' <- path from
+  to' <- path to
   to_dir <- test_d to
-  liftIO $ copyFile from (if to_dir then to </> takeFileName from else to)
+  liftIO $ copyFile from' (if to_dir then to' </> takeFileName from else to')
 
 class PredicateLike pattern hay where
   match :: pattern -> hay -> Bool
diff --git a/shellish.cabal b/shellish.cabal
--- a/shellish.cabal
+++ b/shellish.cabal
@@ -3,7 +3,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.1.1
+Version:0.1.2
 
 Synopsis:    shell-/perl- like (systems) programming in Haskell
 
