diff --git a/Text/ProtocolBuffers/TextMessage.hs b/Text/ProtocolBuffers/TextMessage.hs
--- a/Text/ProtocolBuffers/TextMessage.hs
+++ b/Text/ProtocolBuffers/TextMessage.hs
@@ -158,7 +158,7 @@
 integer = fromIntegral <$> T.integer lexer
 
 float :: Stream s Identity Char => Parsec s () Double
-float = T.float lexer
+float = either realToFrac id <$> T.naturalOrFloat lexer
 
 stringLiteral :: Stream s Identity Char => Parsec s () String
 stringLiteral = T.stringLiteral lexer
diff --git a/protocol-buffers.cabal b/protocol-buffers.cabal
--- a/protocol-buffers.cabal
+++ b/protocol-buffers.cabal
@@ -1,5 +1,5 @@
 name:           protocol-buffers
-version:        2.4.8
+version:        2.4.9
 cabal-version:  >= 1.6
 build-type:     Simple
 license:        BSD3
