diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 <!-- -*- Markdown -*- -->
 
+## 0.5.2.0
+
+- check width of Int type and add instances. (backport)
+- fix typo.
+
 ## 0.5.1.1
 
 - Update this changelog.
diff --git a/persistable-record.cabal b/persistable-record.cabal
--- a/persistable-record.cabal
+++ b/persistable-record.cabal
@@ -1,5 +1,5 @@
 name:                persistable-record
-version:             0.5.1.1
+version:             0.5.2.0
 synopsis:            Binding between SQL database values and haskell records.
 description:         This package contiains types to represent table constraints and
                      interfaces to bind between SQL database values and Haskell records.
diff --git a/src/Database/Record/FromSql.hs b/src/Database/Record/FromSql.hs
--- a/src/Database/Record/FromSql.hs
+++ b/src/Database/Record/FromSql.hs
@@ -60,7 +60,7 @@
   foo =  ...
   bar :: 'RecordFromSql' SqlValue Bar
   bar =  ...
-  baz :: 'RecordFromSql' SqlValue Bar
+  baz :: 'RecordFromSql' SqlValue Baz
   baz =  ...
 @
 
diff --git a/src/Database/Record/Instances.hs b/src/Database/Record/Instances.hs
--- a/src/Database/Record/Instances.hs
+++ b/src/Database/Record/Instances.hs
@@ -16,9 +16,10 @@
 module Database.Record.Instances () where
 
 import Data.Int (Int8, Int16, Int32, Int64)
+import Database.Record.InternalTH (knownWidthIntType)
 import Database.Record.TH (deriveNotNullType)
 
-$(fmap concat $ mapM deriveNotNullType
+$(fmap concat $ mapM deriveNotNullType $
   [ [t| Bool |]
   , [t| Char |]
   , [t| String |]
@@ -26,4 +27,5 @@
   , [t| Int16 |]
   , [t| Int32 |]
   , [t| Int64 |]
-  ])
+  ] ++
+  [ t | Just t <- [knownWidthIntType] ])
diff --git a/src/Database/Record/InternalTH.hs b/src/Database/Record/InternalTH.hs
--- a/src/Database/Record/InternalTH.hs
+++ b/src/Database/Record/InternalTH.hs
@@ -2,15 +2,17 @@
 {-# LANGUAGE ConstraintKinds #-}
 
 module Database.Record.InternalTH (
-  defineTupleInstances
+  defineTupleInstances,
+  knownWidthIntType,
   ) where
 
 import Control.Applicative ((<$>))
+import Data.Int (Int32, Int64)
 import Data.List (foldl')
 import Language.Haskell.TH
   (Q, mkName, Name,
    conT, varT, tupleT, appT, classP,
-   Dec, instanceD, )
+   TypeQ, Dec, instanceD, )
 
 import Database.Record.Persistable (PersistableWidth)
 import Database.Record.FromSql (FromSql)
@@ -43,3 +45,14 @@
   [ persistableWidth n
   , tupleInstance2 n ''FromSql
   , tupleInstance2 n ''ToSql ]
+
+knownWidthIntType :: Maybe TypeQ
+knownWidthIntType
+  | toI (minBound :: Int) == toI (minBound :: Int32) &&
+    toI (maxBound :: Int) == toI (maxBound :: Int32)    =  Just [t| Int |]
+  | toI (minBound :: Int) == toI (minBound :: Int64) &&
+    toI (maxBound :: Int) == toI (maxBound :: Int64)    =  Just [t| Int |]
+  | otherwise                                           =  Nothing
+  where
+    toI :: Integral a => a -> Integer
+    toI = fromIntegral
