diff --git a/src/xenia/kernel/xthread.cc b/src/xenia/kernel/xthread.cc
index 9879e4126..c01790a33 100644
--- a/src/xenia/kernel/xthread.cc
+++ b/src/xenia/kernel/xthread.cc
@@ -763,6 +763,12 @@ X_STATUS XThread::Delay(uint32_t processor_mode, uint32_t alertable,
     timeout_ms = uint32_t(-timeout_ticks / 10000);  // Ticks -> MS
   } else {
     timeout_ms = 0;
+    // TODO(Gliniak): Check how it works, but it seems outright wrong.
+    // However some titles like to change priority then go to sleep with timeout
+    // 0.
+    if (priority_ <= xe::threading::ThreadPriority::kNormal) {
+      timeout_ms = 1;
+    }
   }
   timeout_ms = Clock::ScaleGuestDurationMillis(timeout_ms);
   if (alertable) {