diff --git a/build/Android.common.mk b/build/Android.common.mk
index d3f10f3..f46dd21 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -245,6 +245,7 @@
 	MyClass \
 	MyClassNatives \
 	Nested \
+	ParallelGC \
 	ProtoCompare \
 	ProtoCompare2 \
 	ReferenceMap \
diff --git a/build/Android.oattest.mk b/build/Android.oattest.mk
index 77b843d..28cd958 100644
--- a/build/Android.oattest.mk
+++ b/build/Android.oattest.mk
@@ -61,7 +61,7 @@
 # $(2): arguments
 define declare-test-test-target
 .PHONY: test-art-target-oat-$(1)
-test-art-target-oat-$(1): test-art-target-sync
+test-art-target-oat-$(1): $(ART_TEST_OUT)/art-test-dex-$(1).jar test-art-target-sync
 	adb shell touch $(ART_TEST_DIR)/test-art-target-oat-$(1)
 	adb shell rm $(ART_TEST_DIR)/test-art-target-oat-$(1)
 	adb shell sh -c "oatexecd -Ximage:$(ART_TEST_DIR)/core.art -classpath $(ART_TEST_DIR)/art-test-dex-$(1).jar $(1) $(2) && touch $(ART_TEST_DIR)/test-art-target-oat-$(1)"
@@ -84,4 +84,7 @@
 # TODO: Enable when the StackWalk2 tests are passing
 # $(eval $(call declare-test-test-target,StackWalk2,))
 
+# TODO: Enable when ParallelGC does not cause hang
+# $(eval $(call declare-test-test-target,ParallelGC,))
+
 ########################################################################
diff --git a/test/ParallelGC/ParallelGC.java b/test/ParallelGC/ParallelGC.java
new file mode 100644
index 0000000..13cb603
--- /dev/null
+++ b/test/ParallelGC/ParallelGC.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011 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.util.ArrayList;
+import java.util.List;
+
+class ParallelGC implements Runnable {
+    public static void main(String[] args) throws Exception {
+        Thread[] threads = new Thread[16];
+        for (int i = 0; i < threads.length; i++) {
+            threads[i] = new Thread(new ParallelGC(i));
+        }
+        for (Thread thread : threads) {
+            thread.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
+    }
+
+    private final int id;
+
+    private ParallelGC(int id) {
+        this.id = id;
+    }
+
+    public void run() {
+        List l = new ArrayList();
+        for (int i = 0; i < 1000; i++) {
+            l.add(new ArrayList(i));
+            if (false) {
+                System.out.print(id);
+            }
+        }
+    }
+}
