diff --git a/test/097-duplicate-method/build b/test/097-duplicate-method/build
new file mode 100644
index 0000000..fe5f50d
--- /dev/null
+++ b/test/097-duplicate-method/build
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright (C) 2012 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.
+
+# Stop if something fails.
+set -e
+
+mkdir classes
+${JAVAC} -d classes src/*.java
+jasmin -d classes src/*.j
+
+${DX} --debug --dex --dump-to=classes.lst --output=classes.dex classes
+zip $TEST_NAME.jar classes.dex
diff --git a/test/097-duplicate-method/expected.txt b/test/097-duplicate-method/expected.txt
new file mode 100644
index 0000000..f985b46a
--- /dev/null
+++ b/test/097-duplicate-method/expected.txt
@@ -0,0 +1 @@
+Success!
diff --git a/test/097-duplicate-method/info.txt b/test/097-duplicate-method/info.txt
new file mode 100644
index 0000000..4e7e0ee
--- /dev/null
+++ b/test/097-duplicate-method/info.txt
@@ -0,0 +1,2 @@
+This is a test to verify that duplicate methods in a dex file are handled
+properly (all but the first are ignored).
diff --git a/test/097-duplicate-method/src/Main.java b/test/097-duplicate-method/src/Main.java
new file mode 100644
index 0000000..bb3d36a
--- /dev/null
+++ b/test/097-duplicate-method/src/Main.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+/**
+ * Certain class files generated by smali can have encoded methods with an
+ * identical method_idx. In these cases, the behavior should be to only use the
+ * first one, and to ignore all following duplicates.
+ */
+public class Main {
+    public static void main(String args[]) {
+        if (Test.run() != null) {
+          System.out.println("Success!");
+        }
+    }
+}
diff --git a/test/097-duplicate-method/src/Test.j b/test/097-duplicate-method/src/Test.j
new file mode 100644
index 0000000..f96a9a3
--- /dev/null
+++ b/test/097-duplicate-method/src/Test.j
@@ -0,0 +1,29 @@
+; Copyright (C) 2012 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 Test
+.super java/lang/Object
+
+.method public static run()Ljava/lang/Object;
+    .limit stack 2
+    new java/lang/Object
+    dup
+    invokespecial java/lang/Object/<init>()V
+    areturn
+.end method
+
+.method public static run()Ljava/lang/Object;
+    aconst_null
+    areturn
+.end method
diff --git a/test/097-duplicate-method/src/Test.java b/test/097-duplicate-method/src/Test.java
new file mode 100644
index 0000000..7dd61e6
--- /dev/null
+++ b/test/097-duplicate-method/src/Test.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+/**
+ * This class and method will be overwritten by smali to return non-null.
+ */
+public class Test {
+    public static Object run() {
+        return null;
+    }
+}
