rendered paste bodydiff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index 4bb44f2..fd13481 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -182,7 +182,8 @@ BOOL X11DRV_DeleteDC( X11DRV_PDEVICE *physDev )
* GetDeviceCaps (X11DRV.@)
*/
INT X11DRV_GetDeviceCaps( X11DRV_PDEVICE *physDev, INT cap )
-{
+{
+ char name[3];
switch(cap)
{
case DRIVERVERSION:
@@ -202,7 +203,8 @@ INT X11DRV_GetDeviceCaps( X11DRV_PDEVICE *physDev, INT cap )
case DESKTOPVERTRES:
return virtual_screen_rect.bottom - virtual_screen_rect.top;
case BITSPIXEL:
- return screen_depth;
+ /*Only 32,24 will work, other values/string will crash wine!!!*/
+ return !GetEnvironmentVariableA("WDEPTH",name,sizeof(name)) ? screen_depth : atoi(name);
case PLANES:
return 1;
case NUMBRUSHES: