Index: soundserver/artswrapper.c
===================================================================
--- soundserver/artswrapper.c	(revision 546970)
+++ soundserver/artswrapper.c	(working copy)
@@ -95,6 +95,10 @@ int main(int argc, char **argv)
 #else
 		setreuid(-1, getuid());
 #endif
+		if (geteuid() != getuid()) {
+			perror("setuid()");
+			return 2;
+		}
 	}
 
 	if(argc == 0)
Index: soundserver/crashhandler.cc
===================================================================
--- soundserver/crashhandler.cc	(revision 546970)
+++ soundserver/crashhandler.cc	(working copy)
@@ -196,7 +196,12 @@ CrashHandler::defaultCrashHandler (int s
           argv[i++] = NULL;
 
           setgid(getgid());
-          setuid(getuid());
+          if (getuid() != geteuid())
+            setuid(getuid());
+          if (getuid() != geteuid()) {
+	    perror("setuid()");
+            exit(255);
+          }
 
           execvp(crashApp, argv);