diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c
index fe70da0652b04fd793766196d098f6c0b388b009..31bc5f403b44de6da8090868669a304174b5655e 100644
--- a/dlls/ole32/ole2.c
+++ b/dlls/ole32/ole2.c
@@ -2826,6 +2826,9 @@ HRESULT WINAPI FreePropVariantArray(ULONG cVariants, /* [in] */
 
     TRACE("(%lu, %p)\n", cVariants, rgvars);
 
+    if (!rgvars)
+        return E_INVALIDARG;
+
     for(i = 0; i < cVariants; i++)
         PropVariantClear(&rgvars[i]);