diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index cc717808dca2aabc793e2368993c83f38d09d83f..fe89cf08fa408874343c94e61859e21b40861d0f 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -289,7 +289,7 @@ DWORD WINAPI RegEnumKeyExW( HKEY hkey, DWORD index, LPWSTR name, LPDWORD name_le
 
         if (ft) *ft = *(FILETIME *)&info->LastWriteTime;
 
-        if (len >= *name_len || (class_len && (cls_len >= *class_len)))
+        if (len >= *name_len || (class && class_len && (cls_len >= *class_len)))
             status = STATUS_BUFFER_OVERFLOW;
         else
         {
@@ -352,7 +352,7 @@ DWORD WINAPI RegEnumKeyExA( HKEY hkey, DWORD index, LPSTR name, LPDWORD name_len
                                    info->ClassLength );
         if (ft) *ft = *(FILETIME *)&info->LastWriteTime;
 
-        if (len >= *name_len || (class_len && (cls_len >= *class_len)))
+        if (len >= *name_len || (class && class_len && (cls_len >= *class_len)))
             status = STATUS_BUFFER_OVERFLOW;
         else
         {