diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### 0.1.2 [2017-01-09]
+* Use more efficient implementation for `bracketInputEcho`.
+
 ### 0.1.1 [2017-01-07]
 * Use `System.Win32.MinTTY` from `Win32-2.5` or later if possible.
 
diff --git a/echo.cabal b/echo.cabal
--- a/echo.cabal
+++ b/echo.cabal
@@ -1,5 +1,5 @@
 name:                echo
-version:             0.1.1
+version:             0.1.2
 synopsis:            A cross-platform, cross-console way to handle echoing terminal input
 description:         The @base@ library exposes the @hGetEcho@ and @hSetEcho@ functions
                      for querying and setting echo status, but unfortunately, neither
diff --git a/src/System/IO/Echo/Internal.hs b/src/System/IO/Echo/Internal.hs
--- a/src/System/IO/Echo/Internal.hs
+++ b/src/System/IO/Echo/Internal.hs
@@ -119,10 +119,10 @@
 -- computation.
 --
 -- @
--- bracketInputEcho action = 'bracket' 'getInputEcho' 'setInputEcho' (const action)
+-- bracketInputEcho action = 'bracket' 'getInputEchoState' 'setInputEchoState' (const action)
 -- @
 bracketInputEcho :: IO a -> IO a
-bracketInputEcho action = bracket getInputEcho setInputEcho (const action)
+bracketInputEcho action = bracket getInputEchoState setInputEchoState (const action)
 
 -- | Perform a computation with the terminal's input echoing disabled. Before
 -- running the computation, the terminal's input 'EchoState' is saved, and the
