diff --git a/fclabels.cabal b/fclabels.cabal
--- a/fclabels.cabal
+++ b/fclabels.cabal
@@ -1,5 +1,5 @@
 Name:          fclabels
-Version:       1.1.4.2
+Version:       1.1.4.3
 Author:        Sebastiaan Visser, Erik Hesselink, Chris Eidhof, Sjoerd Visscher
                with lots of help and feedback from others.
 Synopsis:      First class accessor labels.
@@ -20,9 +20,9 @@
                .
                See the "Data.Label.Maybe" module for the use of partial labels.
                .
-               > 1.1.4 -> 1.1.4.2
+               > 1.1.4.2 -> 1.1.4.3
                >   - Make compilable against template haskell 2.8.
-               >     Thanks to Shimuuar for the pull request.
+               >     Thanks to mgsloan for the pull request.
 
 Maintainer:    Sebastiaan Visser <code@fvisser.nl>
 License:       BSD3
diff --git a/src/Data/Label/Derive.hs b/src/Data/Label/Derive.hs
--- a/src/Data/Label/Derive.hs
+++ b/src/Data/Label/Derive.hs
@@ -124,13 +124,12 @@
 
     -- Generate an inline declaration for the label.
     --
-    -- Type of InlineSpec changed in TH-2.8.0 (GHC 7.6)
+    -- Type of InlineSpec removed in TH-2.8.0 (GHC 7.6)
 #if MIN_VERSION_template_haskell(2,8,0)
-    doInline = Inline
+    inline = PragmaD (InlineP labelName Inline FunLike (FromPhase 0))
 #else
-    doInline = True
+    inline = PragmaD (InlineP labelName (InlineSpec True True (Just (True, 0))))
 #endif
-    inline = PragmaD (InlineP labelName (InlineSpec doInline True (Just (True, 0))))
     labelName = mkName (makeLabel (nameBase field))
 
     -- Build a single record label definition for labels that might fail.
@@ -164,8 +163,8 @@
     inputType = return $ foldr (flip AppT) (ConT tyname) (map tvToVarT (reverse prettyVars))
 
     -- Convert a type variable binder to a regular type variable.
-    tvToVarT (PlainTV tv) = VarT tv
-    tvToVarT _            = fclError "No support for special-kinded type variables."
+    tvToVarT (PlainTV  tv     ) = VarT tv
+    tvToVarT (KindedTV tv kind) = SigT (VarT tv) kind
 
     -- Prettify type variables.
     arrow          = varT (mkName "arr")
