diff -Npur --exclude=CVS --exclude=*.bak --exclude=*.o --exclude=*.po --exclude=.#* HEAD/source/rpc_server/srv_spoolss_nt.c HEAD-fix/source/rpc_server/srv_spoolss_nt.c
--- HEAD/source/rpc_server/srv_spoolss_nt.c	Sat Sep 28 21:57:40 2002
+++ HEAD-fix/source/rpc_server/srv_spoolss_nt.c	Mon Sep 30 13:00:40 2002
@@ -362,6 +362,7 @@ static WERROR delete_printer_handle(pipe
 
 		/* Send SIGHUP to process group... is there a better way? */
 		kill(0, SIGHUP);
+		add_all_printers();
 
 		if ( ( i = lp_servicenumber( Printer->dev.handlename ) ) >= 0 ) {
 			lp_killservice( i );
@@ -5616,10 +5617,11 @@ static BOOL add_printer_hook(NT_PRINTER_
 	all_string_sub(driverlocation,"\\","\\\\",sizeof(pstring));
 	standard_sub_basic(current_user_info.smb_name, remote_machine,sizeof(remote_machine));
 	
-	slprintf(command, sizeof(command)-1, "%s \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\"",
+	slprintf(command, sizeof(command)-1, "%s \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \"%s\"",
 			cmd, printer->info_2->printername, printer->info_2->sharename,
 			printer->info_2->portname, printer->info_2->drivername,
-			printer->info_2->location, driverlocation, remote_machine);
+			printer->info_2->location, driverlocation, printer->info_2->comment, 
+			remote_machine);
 
 	DEBUG(10,("Running [%s]\n", command));
 	ret = smbrun(command, &fd);
@@ -5641,11 +5643,11 @@ static BOOL add_printer_hook(NT_PRINTER_
 		/* Set the portname to what the script says the portname should be. */
 		strncpy(printer->info_2->portname, qlines[0], sizeof(printer->info_2->portname));
 		DEBUGADD(6,("Line[0] = [%s]\n", qlines[0]));
-
-		/* Send SIGHUP to process group... is there a better way? */
-		kill(0, SIGHUP);
-		add_all_printers();
 	}
+
+	/* Send SIGHUP to process group... is there a better way? */
+	kill(0, SIGHUP);
+	add_all_printers();
 
 	file_lines_free(qlines);
 	return True;
