diff --git a/dlls/d3dx9_36/math.c b/dlls/d3dx9_36/math.c
index a00ffc54a1f897fd80fc18458dd53932c3576188..542e408d007eaa3d46cfdf0dde312220cc6a1aa5 100644
--- a/dlls/d3dx9_36/math.c
+++ b/dlls/d3dx9_36/math.c
@@ -84,11 +84,6 @@ HRESULT WINAPI D3DXMatrixDecompose(D3DXVECTOR3 *poutscale, D3DXQUATERNION *poutr
     D3DXMATRIX normalized;
     D3DXVECTOR3 vec;
 
-    if (!pm)
-    {
-     return D3DERR_INVALIDCALL;
-    }
-
     /*Compute the scaling part.*/
     vec.x=pm->u.m[0][0];
     vec.y=pm->u.m[0][1];
diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c
index f3bb48219152904c9c1eda6efa8f41626fb37603..2240fb08bad7bb6d0d89f210b49fa3ff2c5aeceb 100644
--- a/dlls/d3dx9_36/tests/math.c
+++ b/dlls/d3dx9_36/tests/math.c
@@ -578,11 +578,6 @@ static void test_Matrix_Decompose(void)
 
     hr = D3DXMatrixDecompose(&got_scale, &got_rotation, &got_translation, &pm);
     ok(hr == D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, got %x\n", hr);
-
-/*___________*/
-
-    hr = D3DXMatrixDecompose(&got_scale, &got_rotation, &got_translation, NULL);
-    ok(hr == D3DERR_INVALIDCALL, "Expected D3DERR_INVALIDCALL, got %x\n", hr);
 }
 
 static void test_Matrix_Transformation2D(void)