diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index b0c06e33c285e1aea497e7e8cbb5c58b359b890f..c03cdc70ce82b772686511a006822ade9764db4a 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -3742,10 +3742,10 @@ BOOL WINAPI K32GetProcessMemoryInfo(HANDLE process,
  */
 BOOL WINAPI ProcessIdToSessionId( DWORD procid, DWORD *sessionid_ptr )
 {
-    /* According to MSDN, if the calling process is not in a terminal
-     * services environment, then the sessionid returned is zero.
-     */
-    *sessionid_ptr = 0;
+    if (procid != GetCurrentProcessId())
+        FIXME("Unsupported for other processes.\n");
+
+    *sessionid_ptr = NtCurrentTeb()->Peb->SessionId;
     return TRUE;
 }