diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 5c2ed555fc7f0ad2ac757ecb21335cee34dde9f8..f70fbdde151104edee5a96c544a26cb539e3e6f2 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -201,7 +201,7 @@ NTSTATUS WINAPI NtQueryInformationToken(
         len = sizeof(TOKEN_PRIVILEGES);
         break;
     case TokenOwner:
-        len = sizeof(TOKEN_OWNER);
+        len = sizeof(TOKEN_OWNER) + sizeof(SID);
         break;
     case TokenPrimaryGroup:
         len = sizeof(TOKEN_PRIMARY_GROUP);
@@ -264,6 +264,17 @@ NTSTATUS WINAPI NtQueryInformationToken(
             tpriv->PrivilegeCount = 1;
         }
         break;
+    case TokenOwner:
+        if (tokeninfo)
+        {
+            TOKEN_OWNER *owner = tokeninfo;
+            PSID sid = (PSID) (owner + 1);
+            SID_IDENTIFIER_AUTHORITY localSidAuthority = {SECURITY_NT_AUTHORITY};
+            RtlInitializeSid(sid, &localSidAuthority, 1);
+            *(RtlSubAuthoritySid(sid, 0)) = SECURITY_INTERACTIVE_RID;
+            owner->Owner = sid;
+        }
+        break;
     }
     return 0;
 }