 				 darcsum-output-environment
                                  process-environment))
            (args (append
-                  ;; Build a list of arguments for call-process
-                  (list darcsum-program nil t nil)
-                  (list "whatsnew" "--no-summary")
+                  ;; Build a list of arguments for darcsum-call-process
+                  (list "--no-summary")
                   (darcsum-fix-switches darcsum-whatsnew-switches)
-                  ; Arguments override user preferences
+                  ;; Arguments override user preferences
                   (unless (null look-for-adds) (list "--look-for-adds"))
                   (unless (null show-context) (list "--unified"))
                   (unless (string= directory default-directory)
                     (list (file-relative-name
                            directory default-directory)))
                   nil))
-           (result (apply 'call-process args))
+           (result (apply 'darcsum-call-process "whatsnew" args))
 	   message)
       (if (/= result 0)
           (if (= result 1)

	    change (cadr file))
      (if (memq (car change) '(newfile newdir))
	  (with-temp-buffer
	    (if (/= 0 (call-process
		       darcsum-program nil t nil "add" path))
		(error "Error running `darcs add' for `%s'" path)
	      (setcar change (cdr (assoc (car change) '((newfile . addfile)
							(newdir . adddir))))))

	  (error "First undo pending changes in file")))
     (t
      (error "Not added file or directory")))
    (unless (= 0 (darcsum-call-process "remove" path))
      (error "Error running `darcs remove'"))
    (darcsum-redo)))

