diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index 9399c1e..4cb6add 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -206,7 +206,11 @@
     NTSTATUS status;
 
     if (reserved) return ERROR_INVALID_PARAMETER;
-    if (!is_version_nt()) access = KEY_ALL_ACCESS;  /* Win95 ignores the access mask */
+    if (!is_version_nt())
+    {
+        access = KEY_ALL_ACCESS;  /* Win95 ignores the access mask */
+        if (name && *name == '\\') name++; /* win9x,ME ignores one (and only one) beginning backslash */
+    }
     else if (!(access & KEY_ACCESS_MASK) || (access & ~KEY_ACCESS_MASK)) return ERROR_ACCESS_DENIED;
     if (!(hkey = get_special_root_hkey( hkey ))) return ERROR_INVALID_HANDLE;
 
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c
index 738de73..8014e14 100644
--- a/dlls/advapi32/tests/registry.c
+++ b/dlls/advapi32/tests/registry.c
@@ -476,6 +476,12 @@
     /* send in NULL hkResult */
     ret = RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Test", NULL);
     ok(ret == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %ld\n", ret);
+
+    /*  beginning backslash character */
+    ret = RegOpenKeyA(HKEY_CURRENT_USER, "\\Software\\Wine\\Test", &hkResult);
+       ok(ret == ERROR_BAD_PATHNAME || /* NT/2k/XP */
+           ret == ERROR_FILE_NOT_FOUND /* Win9x,ME */
+           , "expected ERROR_BAD_PATHNAME or ERROR_FILE_NOT_FOUND, got %ld\n", ret);
 }
 
 static void test_reg_create_key(void)
@@ -492,6 +498,15 @@
     /* clean up */
     RegDeleteKey(hkey2, NULL);
     RegDeleteKey(hkey1, NULL);
+
+    /*  beginning backslash character */
+    ret = RegCreateKeyExA(hkey_main, "\\Subkey3", 0, NULL, 0, KEY_NOTIFY, NULL, &hkey1, NULL);
+    if (!(GetVersion() & 0x80000000))
+        ok(ret == ERROR_BAD_PATHNAME, "expected ERROR_BAD_PATHNAME, got %ld\n", ret);
+    else {
+        ok(!ret, "RegCreateKeyExA failed with error %ld\n", ret);
+        RegDeleteKey(hkey1, NULL);
+    }
 }
 
 static void test_reg_close_key(void)
