diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Changes in 0.17
+  - #266:
+    - doctest now annotates its internal marker string as a `String`, to prevent misbehaviour in `OverloadedStrings` environments. This has a theoretical chance of breakage; if you're affected, please open an issue.
+    - `evalEcho` no longer preserves `it`.
+
 Changes in 0.16.3
   - Add a cursor to highlight the differing portion between the
     expected and actual output. (#249)
diff --git a/doctest.cabal b/doctest.cabal
--- a/doctest.cabal
+++ b/doctest.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 4cde762c2c650b42498854666c00b2d44f751e196c9b0dd779fcb055b388414f
+-- hash: 6671c3bec33afff6873246f7b4a0f0b525135af9e29d05ba1a45d528979511ac
 
 name:           doctest
-version:        0.16.3
+version:        0.17
 synopsis:       Test interactive Haskell examples
 description:    The doctest program checks examples in source code comments.  It is modeled
                 after doctest for Python (<http://docs.python.org/library/doctest.html>).
diff --git a/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs b/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
--- a/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
+++ b/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
@@ -102,7 +102,7 @@
 putExpression Interpreter{hIn = stdin} preserveIt e = do
   hPutStrLn stdin e
   when preserveIt $ hPutStrLn stdin $ "let " ++ itMarker ++ " = it"
-  hPutStrLn stdin marker
+  hPutStrLn stdin (marker ++ " :: Data.String.String")
   when preserveIt $ hPutStrLn stdin $ "let it = " ++ itMarker
   hFlush stdin
 
@@ -142,5 +142,5 @@
 -- | Evaluate an expression
 evalEcho :: Interpreter -> String -> IO String
 evalEcho repl expr = do
-  putExpression repl True expr
+  putExpression repl False expr
   getResult True repl
