diff --git a/Data/JsonStream/CLexer.hs b/Data/JsonStream/CLexer.hs
--- a/Data/JsonStream/CLexer.hs
+++ b/Data/JsonStream/CLexer.hs
@@ -133,7 +133,7 @@
     let
       (csign, r1) = parseSign tnumber :: (Int, BS.ByteString)
       ((num, numdigits), r2) = parseDecimal r1 :: ((Integer, Int), BS.ByteString)
-      ((frac, frdigits), r3) = parseFract r2 :: ((Int, Int), BS.ByteString)
+      ((frac, frdigits), r3) = parseFract r2 :: ((Integer, Int), BS.ByteString)
       (texp, rest) = parseE r3
     when (numdigits == 0 || not (BS.null rest)) Nothing
     let dpart = fromIntegral csign * (num * (10 ^ frdigits) + fromIntegral frac) :: Integer
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,11 @@
+# 0.4.2.3
+
+Fix 32-bit number parsing.
+
+# 0.4.2.2
+
+Speed optimization of `many` and aeson object.
+
 # 0.4.2.0
 Added Semigroup instance, compatibility with base-4.11
 
diff --git a/json-stream.cabal b/json-stream.cabal
--- a/json-stream.cabal
+++ b/json-stream.cabal
@@ -1,5 +1,5 @@
 name:                json-stream
-version:             0.4.2.2
+version:             0.4.2.3
 synopsis:            Incremental applicative JSON parser
 description:         Easy to use JSON parser fully supporting incremental parsing.
                      Parsing grammar in applicative form.
diff --git a/test/ParserSpec.hs b/test/ParserSpec.hs
--- a/test/ParserSpec.hs
+++ b/test/ParserSpec.hs
@@ -222,7 +222,7 @@
     let res1 = parse (arrayOf value) test :: [Integer]
     res1 `shouldBe` [-9999999999999999999999999,-999999999999,-9999999,-30000,-10000,0,10000,80000,9999,9999999, 999999999999, 18446744073709551000, 9999999999999999999999999, 4294967295]
 
-    let res2 = parse (arrayOf integer) test :: [Int]
+    let res2 = parse (arrayOf integer) test :: [Int64]
     res2 `shouldBe` [-999999999999,-9999999,-30000,-10000,0,10000,80000,9999,9999999, 999999999999, 4294967295]
 
     let res3 = parse (arrayOf integer) test :: [Word64]
