Index: src/test/regress/pg_regress.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/test/regress/pg_regress.c,v
retrieving revision 1.42
diff -c -r1.42 pg_regress.c
*** src/test/regress/pg_regress.c	20 Feb 2008 22:44:16 -0000	1.42
--- src/test/regress/pg_regress.c	4 Mar 2008 13:03:31 -0000
***************
*** 1009,1022 ****
  	cmdline2 = malloc(strlen(cmdline) + 8);
  	sprintf(cmdline2, "cmd /c %s", cmdline);
  
! 	if (!CreateProcessAsUser(restrictedToken, NULL, cmdline2, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
  	{
  		fprintf(stderr, _("could not start process for \"%s\": %lu\n"),
  				cmdline2, GetLastError());
  		exit_nicely(2);
  	}
  	free(cmdline2);
  
  	CloseHandle(pi.hThread);
  	return pi.hProcess;
  #endif
--- 1009,1038 ----
  	cmdline2 = malloc(strlen(cmdline) + 8);
  	sprintf(cmdline2, "cmd /c %s", cmdline);
  
! 	if (!CreateProcessAsUser(restrictedToken,
! 						NULL,
! 						cmdline2,
! 						NULL,
! 						NULL,
! 						TRUE,
! 						CREATE_SUSPENDED,
! 						NULL,
! 						NULL,
! 						&si,
! 						&pi))
  	{
  		fprintf(stderr, _("could not start process for \"%s\": %lu\n"),
  				cmdline2, GetLastError());
  		exit_nicely(2);
  	}
+ 
+ #ifndef __CYGWIN__
+ 	AddUserToDacl(pi.hProcess);
+ #endif
+ 
  	free(cmdline2);
  
+     ResumeThread(pi.hThread);
  	CloseHandle(pi.hThread);
  	return pi.hProcess;
  #endif
