diff --git a/src/main/scala/leon/xlang/AntiAliasingPhase.scala b/src/main/scala/leon/xlang/AntiAliasingPhase.scala
index 8a5f627a778dd520bc6605c7210c00cb5a06ad85..831d5d7da7afe6ece592163fb014368edb9a2fb2 100644
--- a/src/main/scala/leon/xlang/AntiAliasingPhase.scala
+++ b/src/main/scala/leon/xlang/AntiAliasingPhase.scala
@@ -41,7 +41,7 @@ object AntiAliasingPhase extends TransformationPhase {
     }
 
     val res = replaceFunDefs(pgm)(fd => updatedFunctions.get(fd), (fi, fd) => None)
-    println(res._1)
+    //println(res._1)
     res._1
   }
 
@@ -117,7 +117,9 @@ object AntiAliasingPhase extends TransformationPhase {
         val newBody =
           replace(
             aliasedParams.zipWithIndex.map{ case (id, i) => 
-              (id.toVariable, TupleSelect(newRes.toVariable, i+2)): (Expr, Expr)}.toMap +
+              (id.toVariable, TupleSelect(newRes.toVariable, i+2)): (Expr, Expr)}.toMap ++
+            aliasedParams.map(id =>
+              (Old(id), id.toVariable): (Expr, Expr)).toMap +
             (res.toVariable -> TupleSelect(newRes.toVariable, 1)),
           postBody)
         Lambda(Seq(newRes), newBody).setPos(post)
@@ -272,9 +274,6 @@ object AntiAliasingPhase extends TransformationPhase {
     }
 
     def invocEffects(fi: FunctionInvocation): Set[Identifier] = {
-      if(!effects.isDefinedAt(fi.tfd.fd)) {
-        println("fi not defined: " + fi)
-      }
       //TODO: the require should be fine once we consider nested functions as well
       //require(effects.isDefinedAt(fi.tfd.fd)
       val mutatedParams: Set[Int] = effects.get(fi.tfd.fd).getOrElse(Set())
diff --git a/src/test/resources/regression/verification/xlang/valid/ArrayParamMutation8.scala b/src/test/resources/regression/verification/xlang/valid/ArrayParamMutation8.scala
new file mode 100644
index 0000000000000000000000000000000000000000..68aa737eb42e6e51073dac27b799e06bde928400
--- /dev/null
+++ b/src/test/resources/regression/verification/xlang/valid/ArrayParamMutation8.scala
@@ -0,0 +1,25 @@
+/* Copyright 2009-2015 EPFL, Lausanne */
+
+import leon.lang._
+
+object ArrayParamMutation8 {
+
+  def odd(a: Array[BigInt]): Boolean = {
+    require(a.length > 0 && a(0) >= 0)
+    if(a(0) == 0) false
+    else {
+      a(0) = a(0) - 1
+      even(a)
+    }
+  } ensuring(res => if(old(a)(0) % 2 == 1) res else !res)
+
+  def even(a: Array[BigInt]): Boolean = {
+    require(a.length > 0 && a(0) >= 0)
+    if(a(0) == 0) true
+    else {
+      a(0) = a(0) - 1
+      odd(a)
+    }
+  } ensuring(res => if(old(a)(0) % 2 == 0) res else !res)
+
+}