diff --git a/testcases/BinarySearchTree.scala b/testcases/BinarySearchTree.scala
index 0e7f56f48ce5a2c21d3bae9280b6df6de20920ba..a01ccc3f6587816f2034a292e773ddadbb8a77ac 100644
--- a/testcases/BinarySearchTree.scala
+++ b/testcases/BinarySearchTree.scala
@@ -20,9 +20,13 @@ object BinarySearchTree {
 
     def contains(tree: Tree, value: Int) : Boolean = tree match {
         case Leaf() => false
-        case Node(_, v, _) if v == value => true 
-        case Node(l, v, r) if v < value => contains(r, value)
-        case Node(l, v, r) if v > value => contains(l, value)
+        case n @ Node(l, v, r) => if(v < value) {
+          contains(r, value)
+        } else if(v > value) {
+          contains(l, value)
+        } else {
+          true
+        }
     }
 
     def contents(tree: Tree) : Set[Int] = tree match {