diff --git a/dlls/oleaut32/safearray.c b/dlls/oleaut32/safearray.c
index 8da2d763886e92aa1d51c827087f1c688ccc716e..be309f6bf51f516651c60c5716a7ddac0d9f3b3b 100644
--- a/dlls/oleaut32/safearray.c
+++ b/dlls/oleaut32/safearray.c
@@ -578,6 +578,9 @@ HRESULT WINAPI SafeArrayDestroyData(
   if(psa->cLocks > 0)
     return DISP_E_ARRAYISLOCKED;
 
+  if(psa->pvData==NULL)
+    return S_OK;
+
   ulWholeArraySize = getArraySize(psa);
 
   if(isPointer(psa->fFeatures)) {           /* release the pointers */