diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for Shake (* = breaking change)
 
+0.18.1, released 2019-05-19
+    #678, fix serious bug in writeFile' - it could delete an unrelated file
 0.18, released 2019-05-14
 *   Make files copied to the shared cache read-only
     Delete files before writing, giving symlink/readonly safety
diff --git a/shake.cabal b/shake.cabal
--- a/shake.cabal
+++ b/shake.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.18
 build-type:         Simple
 name:               shake
-version:            0.18
+version:            0.18.1
 license:            BSD3
 license-file:       LICENSE
 category:           Development, Shake
diff --git a/src/Development/Shake/Internal/Derived.hs b/src/Development/Shake/Internal/Derived.hs
--- a/src/Development/Shake/Internal/Derived.hs
+++ b/src/Development/Shake/Internal/Derived.hs
@@ -121,7 +121,7 @@
 writeFile' :: (MonadIO m, Partial) => FilePath -> String -> m ()
 writeFile' name x = liftIO $ do
     createDirectoryRecursive $ takeDirectory name
-    removeFile_ x -- symlink safety
+    removeFile_ name -- symlink safety
     writeFile name x
 
 
