 				 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)


(defvar darcsum-darcs-2-options 'not-set)

(defun darcsum-start-process (subcommand args
                                         &optional name value &rest localize)
  "Start darcs process."
  (if (eq darcsum-darcs-2-options 'not-set)
      ;; Check version and set proper darcsum-darcs-2-options
      (with-temp-buffer
	(call-process darcsum-program nil t nil "--version")
	(goto-char (point-min))
	(setq darcsum-darcs-2-options
	      (if (looking-at "2[.]") (list "--quiet")))))
    (let*
        ((buf (generate-new-buffer (format " *darcs %s*" subcommand)))
         (process-environment

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