diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index a7e991ed3b683c9f2569bfe0546250ddb13d6ef7..30722e56fa896e6c653bb63e77d50590080ce567 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -316,9 +316,11 @@ HRESULT WINAPI DirectDrawCreate(
 	ddraw_drivers[drvindex] = NULL; /* mark this one as unusable */
     }
 
-    if (IsEqualGUID( &IID_IDirectDraw2, lpGUID ) ||
-	IsEqualGUID( &IID_IDirectDraw4, lpGUID ) ||
-	IsEqualGUID( &IID_IDirectDraw7, lpGUID )
+    if (lpGUID &&
+	(IsEqualGUID( &IID_IDirectDraw2, lpGUID ) ||
+	 IsEqualGUID( &IID_IDirectDraw4, lpGUID ) ||
+	 IsEqualGUID( &IID_IDirectDraw7, lpGUID )
+	)
     ) {
 	LPVOID x;
 	ret = IDirectDraw_QueryInterface(*lplpDD,lpGUID,&x);