diff --git a/hlint.cabal b/hlint.cabal
--- a/hlint.cabal
+++ b/hlint.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.6
 build-type:         Simple
 name:               hlint
-version:            1.8.51
+version:            1.8.52
 license:            BSD3
 license-file:       LICENSE
 category:           Development
diff --git a/src/Hint/Extensions.hs b/src/Hint/Extensions.hs
--- a/src/Hint/Extensions.hs
+++ b/src/Hint/Extensions.hs
@@ -51,6 +51,8 @@
 deriving instance Functor Bar
 {-# LANGUAGE DeriveFunctor, GeneralizedNewtypeDeriving, StandaloneDeriving #-} \
 deriving instance Show Bar -- {-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE DeriveGeneric, GeneralizedNewtypeDeriving #-} \
+newtype Micro = Micro Int deriving Generic -- {-# LANGUAGE DeriveGeneric #-}
 </TEST>
 -}
 
@@ -87,7 +89,7 @@
 
 
 usedExt :: Extension -> Module_ -> Bool
-usedExt (UnknownExtension "DeriveGeneric") = hasDerive False ["Generic","Generic1"]
+usedExt (UnknownExtension "DeriveGeneric") = hasDerive True ["Generic","Generic1"]
 usedExt (EnableExtension x) = used x
 usedExt _ = const True
 
@@ -128,7 +130,8 @@
 used DeriveFoldable = hasDerive False ["Foldable"]
 used DeriveTraversable = hasDerive False ["Traversable"]
 used GeneralizedNewtypeDeriving = not . null . filter (`notElem` special) . fst . derives
-    where special = ["Read","Show","Data","Typeable"] -- these classes cannot use generalised deriving
+    where special = ["Read","Show","Data","Typeable","Generic","Generic1"] -- these classes cannot use generalised deriving
+    -- FIXME: This special list is duplicated here, and as booleans to hasDerive
 used Arrows = hasS f
     where f Proc{} = True
           f LeftArrApp{} = True
