Mask out the upper 12 bits from the resourceid, just like win95 does.
diff --git a/loader/resource.c b/loader/resource.c
index 54588a3..09a5d19 100644
--- a/loader/resource.c
+++ b/loader/resource.c
@@ -856,7 +856,9 @@
TRACE(resource, "instance = %04x, id = %04x, buffer = %08x, "
"length = %d\n", instance, (int)resource_id, (int) buffer, buflen);
- hrsrc = FindResourceW( instance, (LPCWSTR)((resource_id>>4)+1),
+ /* Use bits 4 - 19 (incremented by 1) as resourceid, mask out
+ * 20 - 31. */
+ hrsrc = FindResourceW( instance, (LPCWSTR)(((resource_id>>4)&0xffff)+1),
RT_STRINGW );
if (!hrsrc) return 0;
hmem = LoadResource( instance, hrsrc );