diff --git a/purescript.cabal b/purescript.cabal
--- a/purescript.cabal
+++ b/purescript.cabal
@@ -1,5 +1,5 @@
 name: purescript
-version: 0.5.2.4
+version: 0.5.2.5
 cabal-version: >=1.8
 build-type: Custom
 license: MIT
@@ -16,6 +16,10 @@
         Hardy Jones <jones3.hardy@gmail.com>
 data-files: prelude/prelude.purs
 data-dir: ""
+
+source-repository head
+    type: git
+    location: https://github.com/purescript/purescript.git
 
 library
     build-depends: base >=4 && <5, cmdtheline == 0.2.*, containers -any, unordered-containers -any,
diff --git a/src/Language/PureScript/Optimizer.hs b/src/Language/PureScript/Optimizer.hs
--- a/src/Language/PureScript/Optimizer.hs
+++ b/src/Language/PureScript/Optimizer.hs
@@ -19,8 +19,6 @@
 --
 --  * Inlining of (>>=) and ret for the Eff monad
 --
---  * Removal of unused variables
---
 --  * Removal of unnecessary thunks
 --
 --  * Eta conversion
@@ -57,7 +55,6 @@
   [ collapseNestedBlocks
   , tco opts
   , magicDo opts
-  , removeUnusedVariables
   , removeCodeAfterReturnStatements
   , unThunk
   , etaConvert
diff --git a/src/Language/PureScript/Optimizer/Unused.hs b/src/Language/PureScript/Optimizer/Unused.hs
--- a/src/Language/PureScript/Optimizer/Unused.hs
+++ b/src/Language/PureScript/Optimizer/Unused.hs
@@ -14,22 +14,11 @@
 -----------------------------------------------------------------------------
 
 module Language.PureScript.Optimizer.Unused (
-  removeUnusedVariables,
   removeCodeAfterReturnStatements
 ) where
 
 import Language.PureScript.CodeGen.JS.AST
 import Language.PureScript.Optimizer.Common
-
-removeUnusedVariables :: JS -> JS
-removeUnusedVariables = everywhereOnJS (removeFromBlock withBlock)
-  where
-  withBlock :: [JS] -> [JS]
-  withBlock sts = go sts sts
-  go :: [JS] -> [JS] -> [JS]
-  go _ [] = []
-  go sts (JSVariableIntroduction var _ : rest) | not (any (isUsed var) sts) = go sts rest
-  go sts (s : rest) = s : go sts rest
 
 removeCodeAfterReturnStatements :: JS -> JS
 removeCodeAfterReturnStatements = everywhereOnJS (removeFromBlock go)
