        (helm-w32-launcher--slash-to-backslash
         helm-w32-launcher--external-program-source))
       ;; Compiled successfully, try to run it again.
-      (helm-w32-launcher--call-process-get-output
+      (helm-w32-launcher--call-process
        helm-w32-launcher--external-program-name)))))
 
 (defun helm-w32-launcher--slash-to-backslash (string)

              (or (helm-w32-launcher--guess-csc-executable)
                  (error "Can't guess the path to csc.exe
Please set `helm-w32-launcher-csc-executable'"))))
      (helm-w32-launcher--call-process-get-output
       helm-w32-launcher-csc-executable
       "/nologo" "/t:exe" "/debug-" "/utf8output" "/o"
       (concat "/out:" (helm-w32-launcher--slash-to-backslash

(put 'helm-w32-launcher-process-returned-non-zero
     'error-message "Process returned non-zero")

(defun helm-w32-launcher--call-process (program &rest args)
  "Call PROGRAM synchronously in a separate process.
PROGRAM and ARGS are as in `call-process'.
The PROGRAM's output, decoded using UTF-8, is returned as a string."
  (with-temp-buffer
    (let* ((coding-system-for-read 'utf-8)
           (error-code (apply #'call-process program nil t nil args))
