diff --git a/reactos/dll/win32/kernel32/misc/nls.c b/reactos/dll/win32/kernel32/misc/nls.c index 86afb7ec0eb..86ee53cc0df 100644 --- a/reactos/dll/win32/kernel32/misc/nls.c +++ b/reactos/dll/win32/kernel32/misc/nls.c @@ -284,6 +284,19 @@ IntGetCodePageEntry(UINT CodePage) PAGE_READONLY, SEC_FILE, FileHandle); + + /* HACK: Check if another process was faster + * and already created this section. See bug 3626 for details */ + if (Status == STATUS_OBJECT_NAME_COLLISION) + { + /* Close the file then */ + NtClose(FileHandle); + + /* And open the section */ + Status = NtOpenSection(&SectionHandle, + SECTION_MAP_READ, + &ObjectAttributes); + } } } RtlFreeUnicodeString(&UnicodeName);