diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 2.1.1.5
+
+* Better SQL logging [Yesod issue #939](https://github.com/yesodweb/yesod/issues/939)
+
 ## 2.1.1.3
 
 Parse UTCTime in 8601 format [#339](https://github.com/yesodweb/persistent/issues/339)
diff --git a/Database/Persist/Class/PersistEntity.hs b/Database/Persist/Class/PersistEntity.hs
--- a/Database/Persist/Class/PersistEntity.hs
+++ b/Database/Persist/Class/PersistEntity.hs
@@ -164,7 +164,7 @@
 -- The typical usage is:
 --
 -- @
---   instance ToJSON User where
+--   instance ToJSON (Entity User) where
 --       toJSON = keyValueEntityToJSON
 -- @
 keyValueEntityToJSON :: (PersistEntity record, ToJSON record, ToJSON (Key record))
@@ -180,7 +180,7 @@
 -- The typical usage is:
 --
 -- @
---   instance FromJSON User where
+--   instance FromJSON (Entity User) where
 --       parseJSON = keyValueEntityFromJSON
 -- @
 keyValueEntityFromJSON :: (PersistEntity record, FromJSON record, FromJSON (Key record))
@@ -196,7 +196,7 @@
 -- The typical usage is:
 --
 -- @
---   instance ToJSON User where
+--   instance ToJSON (Entity User) where
 --       toJSON = entityIdToJSON
 -- @
 entityIdToJSON :: (PersistEntity record, ToJSON record, ToJSON (Key record)) => Entity record -> Value
@@ -210,7 +210,7 @@
 -- The typical usage is:
 --
 -- @
---   instance FromJSON User where
+--   instance FromJSON (Entity User) where
 --       parseJSON = entityIdFromJSON
 -- @
 entityIdFromJSON :: (PersistEntity record, FromJSON record, FromJSON (Key record)) => Value -> Parser (Entity record)
diff --git a/Database/Persist/Class/PersistField.hs b/Database/Persist/Class/PersistField.hs
--- a/Database/Persist/Class/PersistField.hs
+++ b/Database/Persist/Class/PersistField.hs
@@ -44,6 +44,7 @@
 
 import qualified Data.Set as S
 import qualified Data.Map as M
+import qualified Data.IntMap as IM
 
 import qualified Data.Text.Encoding as TE
 import qualified Data.Vector as V
@@ -280,6 +281,10 @@
             Right (x:y:[])  -> (,) <$> fromPersistValue x <*> fromPersistValue y
             Left e          -> Left e
             _               -> Left $ T.pack $ "Expected 2 item PersistList, received: " ++ show v
+
+instance PersistField v => PersistField (IM.IntMap v) where
+    toPersistValue = toPersistValue . IM.toList
+    fromPersistValue = (fmap IM.fromList) . fromPersistValue
 
 instance PersistField v => PersistField (M.Map T.Text v) where
     toPersistValue = PersistMap . map (\(k,v) -> (k, toPersistValue v)) . M.toList
diff --git a/Database/Persist/Sql/Class.hs b/Database/Persist/Sql/Class.hs
--- a/Database/Persist/Sql/Class.hs
+++ b/Database/Persist/Sql/Class.hs
@@ -28,6 +28,7 @@
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
 import qualified Data.Map as M
+import qualified Data.IntMap as IM
 import qualified Data.Set as S
 import Data.Time (UTCTime, TimeOfDay, Day)
 import Data.Int
@@ -247,6 +248,8 @@
 instance (Ord a, PersistFieldSql a) => PersistFieldSql (S.Set a) where
     sqlType _ = SqlString
 instance (PersistFieldSql a, PersistFieldSql b) => PersistFieldSql (a,b) where
+    sqlType _ = SqlString
+instance PersistFieldSql v => PersistFieldSql (IM.IntMap v) where
     sqlType _ = SqlString
 instance PersistFieldSql v => PersistFieldSql (M.Map T.Text v) where
     sqlType _ = SqlString
diff --git a/Database/Persist/Sql/Raw.hs b/Database/Persist/Sql/Raw.hs
--- a/Database/Persist/Sql/Raw.hs
+++ b/Database/Persist/Sql/Raw.hs
@@ -39,7 +39,7 @@
 rawQueryRes sql vals = do
     conn <- ask
     let make = do
-            runLoggingT ($logDebugS (pack "SQL") $ pack $ show sql ++ " " ++ show vals)
+            runLoggingT ($logDebugS (pack "SQL") $ T.append sql $ pack $ "; " ++ show vals)
                 (connLogFunc conn)
             getStmtConn conn sql
     return $ do
@@ -61,7 +61,7 @@
                 -> ReaderT SqlBackend m Int64
 rawExecuteCount sql vals = do
     conn <- ask
-    runLoggingT ($logDebugS (pack "SQL") $ pack $ show sql ++ " " ++ show vals)
+    runLoggingT ($logDebugS (pack "SQL") $ T.append sql $ pack $ "; " ++ show vals)
         (connLogFunc conn)
     stmt <- getStmt sql
     res <- liftIO $ stmtExecute stmt vals
diff --git a/persistent.cabal b/persistent.cabal
--- a/persistent.cabal
+++ b/persistent.cabal
@@ -1,5 +1,5 @@
 name:            persistent
-version:         2.1.1.4
+version:         2.1.1.5
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
