--- kdebase-3.5.8.orig/kdmlib/dmctl.cpp 2007-01-15 22:31:50.000000000 +1100 +++ kdebase-3.5.8.orig/kdmlib/dmctl.cpp 2007-11-02 16:14:39.000000000 +1100 @@ -44,6 +44,7 @@ { const char *ptr; struct sockaddr_un sa; + struct stat ststat; if (DMType == Dunno) { if (!(dpy = ::getenv( "DISPLAY" ))) @@ -65,8 +66,13 @@ if ((fd = ::socket( PF_UNIX, SOCK_STREAM, 0 )) < 0) return; sa.sun_family = AF_UNIX; - if (DMType == GDM) - strcpy( sa.sun_path, "/tmp/.gdm_socket" ); + if (DMType == GDM) { + if (stat("/var/run/gdm_socket"i, ststat)==0) { + strcpy( sa.sun_path, "/var/run/gdm_socket"); + } else { + strcpy( sa.sun_path, "/tmp/.gdm_socket" ); + } + } else { if ((ptr = strchr( dpy, ':' ))) ptr = strchr( ptr, '.' );