diff --git a/compiler/optimizing/ssa_builder.cc b/compiler/optimizing/ssa_builder.cc
index 2a86e60..c37b199 100644
--- a/compiler/optimizing/ssa_builder.cc
+++ b/compiler/optimizing/ssa_builder.cc
@@ -213,7 +213,13 @@
       HPhi* phi = it.Current()->AsPhi();
       HPhi* next = phi->GetNextEquivalentPhiWithSameType();
       if (next != nullptr) {
-        phi->ReplaceWith(next);
+        // Make sure we do not replace a live phi with a dead phi. A live phi has been
+        // handled by the type propagation phase, unlike a dead phi.
+        if (next->IsLive()) {
+          phi->ReplaceWith(next);
+        } else {
+          next->ReplaceWith(phi);
+        }
         DCHECK(next->GetNextEquivalentPhiWithSameType() == nullptr)
             << "More then one phi equivalent with type " << phi->GetType()
             << " found for phi" << phi->GetId();
diff --git a/test/520-equivalent-phi/expected.txt b/test/520-equivalent-phi/expected.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/520-equivalent-phi/expected.txt
diff --git a/test/520-equivalent-phi/info.txt b/test/520-equivalent-phi/info.txt
new file mode 100644
index 0000000..b895e91
--- /dev/null
+++ b/test/520-equivalent-phi/info.txt
@@ -0,0 +1,2 @@
+Regression test for the SSA building of the optimizing
+compiler. See comment in smali file.
diff --git a/test/520-equivalent-phi/smali/Equivalent.smali b/test/520-equivalent-phi/smali/Equivalent.smali
new file mode 100644
index 0000000..fb4b756
--- /dev/null
+++ b/test/520-equivalent-phi/smali/Equivalent.smali
@@ -0,0 +1,35 @@
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+.class public LEquivalent;
+
+.super Ljava/lang/Object;
+
+.method public static method([I)V
+   .registers 3
+   const/4 v0, 0
+   if-eq p0, v0, :first_if
+   move-object v0, p0
+   :first_if
+   if-eqz v0, :second_if
+   # Having this move-object used to confuse the type propagation
+   # phase of the optimizing compiler: the phase propagates types
+   # based on uses, but a move-object disappears after SSA, leaving
+   # the compiler with a reference equivalent that has no use. So
+   # we would consider the phi equivalent reference of v0, as dead,
+   # even though it is the one that has the correct type.
+   move-object v1, v0
+   :second_if
+   return-void
+.end method
diff --git a/test/520-equivalent-phi/src/Main.java b/test/520-equivalent-phi/src/Main.java
new file mode 100644
index 0000000..96608bd
--- /dev/null
+++ b/test/520-equivalent-phi/src/Main.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.lang.reflect.Method;
+
+public class Main {
+  // Workaround for b/18051191.
+  class Inner {}
+
+  public static void main(String[] args) throws Exception {
+    Class<?> c = Class.forName("Equivalent");
+    Method m = c.getMethod("method", int[].class);
+    int[] array = new int[7];
+    Object[] arguments = { array };
+    m.invoke(null, arguments);
+  }
+}
