diff --git a/mysql-simple-typed.cabal b/mysql-simple-typed.cabal
--- a/mysql-simple-typed.cabal
+++ b/mysql-simple-typed.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mysql-simple-typed
-version:             0.1.1.2
+version:             0.1.1.3
 synopsis:            Typed extension to mysql simple
 -- description:         
 homepage:            https://github.com/tolysz/mysql-simple-typed
diff --git a/src/Database/MySQL/Simple/DBmoreTH.hs b/src/Database/MySQL/Simple/DBmoreTH.hs
--- a/src/Database/MySQL/Simple/DBmoreTH.hs
+++ b/src/Database/MySQL/Simple/DBmoreTH.hs
@@ -4,6 +4,7 @@
            , NoMonomorphismRestriction
            , BangPatterns
            , TemplateHaskell
+           , CPP
   #-}
 module Database.MySQL.Simple.DBmoreTH
 ( qp
@@ -24,10 +25,17 @@
 
 -- maybe add case 0 + 1 and make it being generated
 
+clap t x =
+#if MIN_VERSION_template_haskell(2,10,0)
+   AppT (ConT t) (VarT x)
+#else
+   ClassP t [VarT x]
+#endif
+
 qp :: Int -> Q [Dec]
 qp k =  do
     ns <- replicateM k (newName "a")
-    let pre = map (\x -> ClassP (''Param) [VarT x]) ns
+    let pre = map (clap ''Param) ns
     return [ InstanceD pre (loop k ns) [fun ns] ]
        where
          loop 0 ns = AppT (TupleT k) (VarT (head ns))
@@ -43,7 +51,7 @@
     fs <- newName "fs"
     vs <- newName "vs"
 
-    let pre = map (\x -> ClassP (''Result) [VarT x]) nsa
+    let pre = map (clap ''Result) nsa
     return [ InstanceD pre (loop k nsa) [fun nsa nsf nsv fs vs] ]
        where
          loop 0 ns = AppT (TupleT k) (VarT (head ns))
