diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for th-abstraction
 
+## 0.4.1.0 -- 2020-12-09
+* Fix a bug in which `normalizeDec` would give incorrect kind annotations to
+  type variables in quoted `Dec`s. `normalizeDec` now leaves the kinds of
+  type variable binders alone.
+
 ## 0.4.0.0 -- 2020-09-29
 * Adapt to the `TyVarBndr` data type gaining a new `flag` type parameter
   (in `template-haskell-2.17.0.0`) to represent its specificity:
diff --git a/src/Language/Haskell/TH/Datatype.hs b/src/Language/Haskell/TH/Datatype.hs
--- a/src/Language/Haskell/TH/Datatype.hs
+++ b/src/Language/Haskell/TH/Datatype.hs
@@ -718,7 +718,7 @@
       let tvbs'    = tvbs ++ extra_tvbs
           instTys' = instTys ++ bndrParams extra_tvbs
       dec <- normalizeDec' isReified context name tvbs' instTys' cons variant
-      repair13618' $ giveDIVarsStarKinds dec
+      repair13618' $ giveDIVarsStarKinds isReified dec
 
 -- | Create new kind variable binder names corresponding to the return kind of
 -- a data type. This is useful when you have a data type like:
@@ -801,7 +801,7 @@
   Con             {- ^ Constructor              -} ->
   Q [ConstructorInfo]
 normalizeConFor reifiedDec typename params instTys variant =
-  fmap (map giveCIVarsStarKinds) . dispatch
+  fmap (map (giveCIVarsStarKinds reifiedDec)) . dispatch
   where
     -- A GADT constructor is declared infix when:
     --
@@ -1978,23 +1978,33 @@
 
 -- On old versions of GHC, reify would not give you kind signatures for
 -- GADT type variables of kind *. To work around this, we insert the kinds
--- manually on any types without a signature.
+-- manually on any reified type variable binders without a signature. However,
+-- don't do this for quoted type variable binders (#84).
 
-giveDIVarsStarKinds :: DatatypeInfo -> DatatypeInfo
-giveDIVarsStarKinds info =
-  info { datatypeVars      = map giveTyVarBndrStarKind (datatypeVars info)
-       , datatypeInstTypes = map giveTypeStarKind (datatypeInstTypes info) }
+giveDIVarsStarKinds :: IsReifiedDec -> DatatypeInfo -> DatatypeInfo
+giveDIVarsStarKinds isReified info =
+  info { datatypeVars      = map (giveTyVarBndrStarKind isReified) (datatypeVars info)
+       , datatypeInstTypes = map (giveTypeStarKind isReified) (datatypeInstTypes info) }
 
-giveCIVarsStarKinds :: ConstructorInfo -> ConstructorInfo
-giveCIVarsStarKinds info =
-  info { constructorVars = map giveTyVarBndrStarKind (constructorVars info) }
+giveCIVarsStarKinds :: IsReifiedDec -> ConstructorInfo -> ConstructorInfo
+giveCIVarsStarKinds isReified info =
+  info { constructorVars = map (giveTyVarBndrStarKind isReified) (constructorVars info) }
 
-giveTyVarBndrStarKind :: TyVarBndrUnit -> TyVarBndrUnit
-giveTyVarBndrStarKind tvb = elimTV (\n -> kindedTV n starK) (\_ _ -> tvb) tvb
+giveTyVarBndrStarKind :: IsReifiedDec ->  TyVarBndrUnit -> TyVarBndrUnit
+giveTyVarBndrStarKind isReified tvb
+  | isReified
+  = elimTV (\n -> kindedTV n starK) (\_ _ -> tvb) tvb
+  | otherwise
+  = tvb
 
-giveTypeStarKind :: Type -> Type
-giveTypeStarKind t@(VarT n) = SigT t starK
-giveTypeStarKind t          = t
+giveTypeStarKind :: IsReifiedDec -> Type -> Type
+giveTypeStarKind isReified t
+  | isReified
+  = case t of
+      VarT n -> SigT t starK
+      _      -> t
+  | otherwise
+  = t
 
 -- | Prior to GHC 8.2.1, reify was broken for data instances and newtype
 -- instances. This code attempts to detect the problem and repair it if
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -426,7 +426,7 @@
            , datatypeCons      =
                [ ConstructorInfo
                    { constructorName       = mkName "MkFoo"
-                   , constructorVars       = [kindedTV a starK]
+                   , constructorVars       = [plainTV a]
                    , constructorContext    = []
                    , constructorFields     = [VarT a]
                    , constructorStrictness = [notStrictAnnot]
@@ -491,8 +491,8 @@
          DatatypeInfo
            { datatypeName      = mkName "Quoted"
            , datatypeContext   = []
-           , datatypeVars      = [kindedTV a starK]
-           , datatypeInstTypes = [SigT aVar starK]
+           , datatypeVars      = [plainTV a]
+           , datatypeInstTypes = [aVar]
            , datatypeVariant   = DataInstance
            , datatypeCons      =
                [ ConstructorInfo
@@ -620,15 +620,14 @@
   $(do [dec] <- [d| data instance FamLocalDec2 Int (a, b) a = FamLocalDec2Int { fm0 :: (b, a), fm1 :: Int } |]
        info <- normalizeDec dec
        let names            = map mkName ["a", "b"]
-           [aTvb,bTvb]      = map (\v -> kindedTV v starK) names
+           [aTvb,bTvb]      = map plainTV names
            vars@[aVar,bVar] = map (VarT . mkName) ["a", "b"]
-           [aSig,bSig]      = map (\v -> SigT v starK) vars
        validateDI info
          DatatypeInfo
            { datatypeName      = ''FamLocalDec2
            , datatypeContext   = []
            , datatypeVars      = [aTvb,bTvb]
-           , datatypeInstTypes = [ConT ''Int, TupleT 2 `AppT` aVar `AppT` bVar, aSig]
+           , datatypeInstTypes = [ConT ''Int, TupleT 2 `AppT` aVar `AppT` bVar, aVar]
            , datatypeVariant   = DataInstance
            , datatypeCons      =
                [ ConstructorInfo
@@ -841,9 +840,9 @@
          DatatypeInfo
            { datatypeName      = mkName "Foo"
            , datatypeContext   = []
-           , datatypeVars      = [ kindedTV a starK, kindedTV b starK
+           , datatypeVars      = [ plainTV a, plainTV b
                                  , kindedTV f fKind, kindedTV x starK ]
-           , datatypeInstTypes = [ SigT (VarT a) starK, SigT (VarT b) starK
+           , datatypeInstTypes = [ VarT a, VarT b
                                  , SigT (VarT f) fKind, SigT (VarT x) starK ]
            , datatypeVariant   = Datatype
            , datatypeCons      =
diff --git a/th-abstraction.cabal b/th-abstraction.cabal
--- a/th-abstraction.cabal
+++ b/th-abstraction.cabal
@@ -1,5 +1,5 @@
 name:                th-abstraction
-version:             0.4.0.0
+version:             0.4.1.0
 synopsis:            Nicer interface for reified information about data types
 description:         This package normalizes variations in the interface for
                      inspecting datatype information via Template Haskell
