diff -Naur kdebase-3.5.8.orig/kdm/backend/bootman.c kdebase-3.5.8/kdm/backend/bootman.c
--- kdebase-3.5.8.orig/kdm/backend/bootman.c	2006-10-01 19:32:15.000000000 +0200
+++ kdebase-3.5.8/kdm/backend/bootman.c	2007-11-21 06:42:00.000000000 +0100
@@ -82,7 +82,7 @@
 	int len;
 	char line[1000];
 
-	if (!grub && !(grub = locate( "grub" )))
+	if (!grub && !(grub = locate( "grub-set-default" )))		
 		return BO_NOMAN;
 
 	*def = 0;
@@ -132,19 +132,14 @@
 static void
 commitGrub( void )
 {
-	FILE *f;
-	int pid;
-	static const char *args[] = { 0, "--batch", "--no-floppy", 0 };
+	char command[256];
 
 	if (sdRec.bmstamp != mTime( GRUB_MENU ) &&
 	    setGrub( sdRec.osname, &sdRec ) != BO_OK)
 		return;
 
-	args[0] = grub;
-	if ((f = pOpen( (char **)args, 'w', &pid ))) {
-		fprintf( f, "savedefault --default=%d --once\n", sdRec.osindex );
-		pClose( f, pid );
-	}
+	sprintf(command, "%s %d", grub, sdRec.osindex);
+	system(command);
 }
 
 static char *lilo;
