diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,9 @@
+## 1.2.3
+
+* Revert double-encoding introduced in 1.0.1. This now requires that you
+  use a modern version of the `socket.io` client library. This work was
+  tested against `socket.io-1.2.1.js`.
+
 ## 1.2.2
 
 * We now use `stm-delay` to implement a timeout, if we don't *receive*
diff --git a/engine-io.cabal b/engine-io.cabal
--- a/engine-io.cabal
+++ b/engine-io.cabal
@@ -1,5 +1,5 @@
 name: engine-io
-version: 1.2.2
+version: 1.2.3
 synopsis: A Haskell implementation of Engine.IO
 homepage: http://github.com/ocharles/engine.io
 license: BSD3
diff --git a/src/Network/EngineIO.hs b/src/Network/EngineIO.hs
--- a/src/Network/EngineIO.hs
+++ b/src/Network/EngineIO.hs
@@ -595,7 +595,7 @@
 
   sendPacket conn (Packet t (TextPacket text)) =
     WebSockets.sendTextData conn $
-      Text.encodeUtf8 $ Text.pack $ BSChar8.unpack $ Text.encodeUtf8 $
+      Text.encodeUtf8 $
         Text.pack (pure $ intToDigit (packetTypeToIndex t)) <> text
 
   sendPacket conn p@(Packet _ (BinaryPacket _)) = do
