diff --git a/src/test/resources/regression/verification/purescala/valid/MergeSort.scala b/src/test/resources/regression/verification/purescala/valid/MergeSort.scala
index 9a1cb71fe0368c6b2ef6021b4f11a2eac961fea5..9847aba0492b9760d8af766b2c5af2a34b4e24fc 100644
--- a/src/test/resources/regression/verification/purescala/valid/MergeSort.scala
+++ b/src/test/resources/regression/verification/purescala/valid/MergeSort.scala
@@ -83,13 +83,18 @@ object MergeSort {
   }
 
   // Not really quicksort, neither mergesort.
-  def weirdSort(in : List) : List = (in match {
-    case Nil() => Nil()
-    case Cons(x, Nil()) => Cons(x, Nil())
-    case _ =>
-      val (s1,s2) = split(in)
-      mergeFast(weirdSort(s1), weirdSort(s2))
-  }) ensuring(res => sortSpec(in, res))
+  // Note: the `s` argument is just a witness for termination (always decreases),
+  // and not needed for functionality. Any decent optimizer will remove it ;-)
+  def weirdSort(s: BigInt, in : List) : List = {
+    require(s == size(in))
+    in match {
+      case Nil() => Nil()
+      case Cons(x, Nil()) => Cons(x, Nil())
+      case _ =>
+        val (s1,s2) = split(in)
+        mergeFast(weirdSort(size(s1), s1), weirdSort(size(s2), s2))
+    }
+  } ensuring(res => sortSpec(in, res))
 
   def toLList(list : List) : LList = (list match {
     case Nil() => LNil()