diff --git a/src/main/scala/leon/purescala/TreeOps.scala b/src/main/scala/leon/purescala/TreeOps.scala
index e6b09cc172e488c313c49fe3c5c70e1f042d4402..8baa7e8dc6b20b6f802c5e625f1f5526d7eb9f93 100644
--- a/src/main/scala/leon/purescala/TreeOps.scala
+++ b/src/main/scala/leon/purescala/TreeOps.scala
@@ -1159,12 +1159,7 @@ object TreeOps {
               }
             }
 
-            if (subconds.forall(_.isInstanceOf[WildcardPattern])) {
-              // nothing to check underneath
-              InstanceOfPattern(Some(binder), cd)
-            } else {
-              CaseClassPattern(Some(binder), cd, subconds)
-            }
+            CaseClassPattern(Some(binder), cd, subconds)
           }
 
           val (scrutinees, patterns) = scrutSet.toSeq.map(s => (s, computePatternFor(conditions(s), s))) unzip