diff --git a/src/vogar/target/junit/Junit4.java b/src/vogar/target/junit/Junit4.java
index 6ee7bd6..65dad7c 100644
--- a/src/vogar/target/junit/Junit4.java
+++ b/src/vogar/target/junit/Junit4.java
@@ -135,11 +135,13 @@
         for (Annotation a : klass.getAnnotations()) {
             Class<?> annotationClass = a.annotationType();
 
-            if (Parameterized.class.isAssignableFrom(annotationClass)) {
-                return true;
-            } else if (RunWith.class.isAssignableFrom(annotationClass)
-                    && Suite.class.isAssignableFrom(((RunWith) a).value())) {
-                isTestSuite = true;
+            if (RunWith.class.isAssignableFrom(annotationClass)) {
+                Class<?> runnerClass = ((RunWith) a).value();
+                if (Suite.class.isAssignableFrom(runnerClass)) {
+                    isTestSuite = true;
+                } else if (Parameterized.class.isAssignableFrom(runnerClass)) {
+                    return true;
+                }
             } else if (Suite.SuiteClasses.class.isAssignableFrom(annotationClass)) {
                 hasSuiteClasses = true;
             }
