diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index af9188faa338c4e31bfe107e07f38e8e5cb4abdf..294e03ca626533a170285e0486441e1477442ee4 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -223,6 +223,9 @@ void ResumeThreadFromWait(Handle handle) {
 Thread* CreateThread(Handle& handle, const char* name, u32 entry_point, s32 priority,
     s32 processor_id, u32 stack_top, int stack_size) {
 
+    _assert_msg_(KERNEL, (priority >= THREADPRIO_HIGHEST && priority <= THREADPRIO_LOWEST), 
+        "CreateThread priority=%d, outside of allowable range!", priority)
+
     Thread* t = new Thread;
     
     handle = Kernel::g_object_pool.Create(t);
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index bb48ddc79bc2e901edb87b39d60b5b558eec7e89..0d1fe19bf23eff8e737055f293e76bb2e699cb00 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -8,15 +8,16 @@
 #include "core/hle/kernel/kernel.h"
 
 enum ThreadPriority {
-    THREADPRIO_HIGHEST      = 0,
-    THREADPRIO_DEFAULT      = 16,
-    THREADPRIO_LOWEST       = 31,
+    THREADPRIO_HIGHEST      = 0,    ///< Highest thread priority
+    THREADPRIO_DEFAULT      = 16,   ///< Default thread priority for userland apps
+    THREADPRIO_LOW          = 31,   ///< Low range of thread priority for userland apps
+    THREADPRIO_LOWEST       = 63,   ///< Thread priority max checked by svcCreateThread
 };
 
 enum ThreadProcessorId {
-    THREADPROCESSORID_0     = 0xFFFFFFFE,
-    THREADPROCESSORID_1     = 0xFFFFFFFD,
-    THREADPROCESSORID_ALL   = 0xFFFFFFFC,
+    THREADPROCESSORID_0     = 0xFFFFFFFE,   ///< Enables core appcode
+    THREADPROCESSORID_1     = 0xFFFFFFFD,   ///< Enables core syscore
+    THREADPROCESSORID_ALL   = 0xFFFFFFFC,   ///< Enables both cores
 };
 
 namespace Kernel {