diff --git a/src/funcheck/scalacheck/FilterGeneratorAnnotations.scala b/src/funcheck/scalacheck/FilterGeneratorAnnotations.scala
index 65498dee190419c311c05470ba22a074176abab9..be3aaae44058a9b2512607ff7e309d0c981a7265 100644
--- a/src/funcheck/scalacheck/FilterGeneratorAnnotations.scala
+++ b/src/funcheck/scalacheck/FilterGeneratorAnnotations.scala
@@ -37,7 +37,9 @@ trait FilterGeneratorAnnotations {
   def filterTreesWithGeneratorAnnotation(Unit: CompilationUnit)(tree: Tree): Boolean = {
     lazy val sym = tree.symbol
     tree match {
-      case cd: ClassDef => sym.hasAttribute(generator) || abstractSuperClassHasGeneratorAnnotation(sym.superClass)
+      case cd: ClassDef => isAbstractClass(sym) || 
+        				   sym.hasAttribute(generator) || 
+                           abstractSuperClassHasGeneratorAnnotation(sym.superClass)
       case d: DefDef    => sym.hasAttribute(generator)
       case _ => false
     }
@@ -51,13 +53,17 @@ trait FilterGeneratorAnnotations {
     superclass match {
       case NoSymbol => false
       case cs: ClassSymbol =>
-        (cs.hasFlag(scala.tools.nsc.symtab.Flags.ABSTRACT) &&  
-           cs.hasAttribute(generator)) || 
+        (isAbstractClass(cs) && cs.hasAttribute(generator)) || 
           abstractSuperClassHasGeneratorAnnotation(cs.superClass)
       case _ => 
         assert(false, "expected ClassSymbol, found "+superclass)
         false
     }
-    
   }
-}
+  
+  private def isAbstractClass(s: Symbol): Boolean = s match {
+    case cs: ClassSymbol => cs.hasFlag(scala.tools.nsc.symtab.Flags.ABSTRACT) 
+    case _ => false
+  } 
+
+}
\ No newline at end of file