diff --git a/dlls/d3dx9_36/tests/texture.c b/dlls/d3dx9_36/tests/texture.c
index c5753463a0f14bc6784a669539dfde2ccb397267..38b87dbb48a0fe344132cb68ab460aba28ad1c85 100644
--- a/dlls/d3dx9_36/tests/texture.c
+++ b/dlls/d3dx9_36/tests/texture.c
@@ -100,7 +100,10 @@ static void test_D3DXCheckTextureRequirements(IDirect3DDevice9 *device)
     width = caps.MaxTextureWidth-1;
     hr = D3DXCheckTextureRequirements(device, &width, NULL, NULL, 0, NULL, D3DPOOL_DEFAULT);
     ok(hr == D3D_OK, "D3DXCheckTextureRequirements returned %#x, expected %#x\n", hr, D3D_OK);
-    ok(width == caps.MaxTextureWidth-1, "Returned width %d, expected %d\n", width, caps.MaxTextureWidth-1);
+    if (caps.TextureCaps & D3DPTEXTURECAPS_POW2)
+        ok(width == caps.MaxTextureWidth, "Returned width %d, expected %d\n", width, caps.MaxTextureWidth);
+    else
+        ok(width == caps.MaxTextureWidth-1, "Returned width %d, expected %d\n", width, caps.MaxTextureWidth-1);
 
     /* mipmaps */
     width = 64; height = 63;