diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c index 191fb0ddc9b..948de5de892 100644 --- a/dlls/advapi32/tests/registry.c +++ b/dlls/advapi32/tests/registry.c @@ -33,7 +33,13 @@ static DWORD delete_key( HKEY hkey ) while (!(ret = RegEnumKeyW(hkey, 0, name, sizeof(name)))) { - if ((ret = delete_key( hkey ))) break; + HKEY tmp; + if (!(ret = RegOpenKeyExW( hkey, name, 0, KEY_ENUMERATE_SUB_KEYS, &tmp ))) + { + ret = delete_key( tmp ); + RegCloseKey( tmp ); + } + if (ret) break; } if (ret != ERROR_NO_MORE_ITEMS) return ret; RegDeleteKeyA( hkey, NULL );