diff --git a/runtime/Android.bp b/runtime/Android.bp
index 823a4dc..7bf662c 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -642,6 +642,7 @@
         "proxy_test.cc",
         "reference_table_test.cc",
         "runtime_callbacks_test.cc",
+        "runtime_test.cc",
         "subtype_check_info_test.cc",
         "subtype_check_test.cc",
         "thread_pool_test.cc",
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index f6d3528..98b6381 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -549,13 +549,26 @@
     if (runtime != nullptr) {
       ThreadList* thread_list = runtime->GetThreadList();
       if (thread_list != nullptr) {
+        // Dump requires ThreadListLock and ThreadSuspendCountLock to not be held (they will be
+        // grabbed).
+        // TODO(b/134167395): Change Dump to work with the locks held, and have a loop with timeout
+        //                    acquiring the locks.
         bool tll_already_held = Locks::thread_list_lock_->IsExclusiveHeld(self);
+        bool tscl_already_held = Locks::thread_suspend_count_lock_->IsExclusiveHeld(self);
+        if (tll_already_held || tscl_already_held) {
+          os << "Skipping all-threads dump as locks are held:"
+             << (tll_already_held ? "" : " thread_list_lock")
+             << (tscl_already_held ? "" : " thread_suspend_count_lock")
+             << "\n";
+          return;
+        }
+        bool ml_already_exlusively_held = Locks::mutator_lock_->IsExclusiveHeld(self);
+        if (ml_already_exlusively_held) {
+          os << "Skipping all-threads dump as mutator lock is exclusively held.";
+        }
         bool ml_already_held = Locks::mutator_lock_->IsSharedHeld(self);
-        if (!tll_already_held || !ml_already_held) {
-          os << "Dumping all threads without appropriate locks held:"
-              << (!tll_already_held ? " thread list lock" : "")
-              << (!ml_already_held ? " mutator lock" : "")
-              << "\n";
+        if (!ml_already_held) {
+          os << "Dumping all threads without mutator lock held\n";
         }
         os << "All threads:\n";
         thread_list->Dump(os);
diff --git a/runtime/runtime_test.cc b/runtime/runtime_test.cc
new file mode 100644
index 0000000..aa4020e
--- /dev/null
+++ b/runtime/runtime_test.cc
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+#include "android-base/logging.h"
+#include "base/locks.h"
+#include "base/mutex.h"
+#include "common_runtime_test.h"
+#include "runtime.h"
+#include "thread-current-inl.h"
+
+namespace art {
+
+class RuntimeTest : public CommonRuntimeTest {};
+
+// Ensure that abort works with ThreadList locks held.
+
+TEST_F(RuntimeTest, AbortWithThreadListLockHeld) {
+  // This assumes the test is run single-threaded: do not start the runtime to avoid daemon threads.
+
+  constexpr const char* kDeathRegex = "Skipping all-threads dump as locks are held";
+  ASSERT_DEATH({
+    // The regex only works if we can ensure output goes to stderr.
+    android::base::SetLogger(android::base::StderrLogger);
+
+    MutexLock mu(Thread::Current(), *Locks::thread_list_lock_);
+    Runtime::Abort("Attempt to abort");
+  }, kDeathRegex);
+}
+
+}  // namespace art
