       (error "Return type '%s' not defined in `ecasound-type-alist'" type))
     (setq eci-return-value value
 	  eci-return-type type
-	  eci-result
-	  (if lcode
-	      (eval (cdar lcode))
-	    value))))
-
-(make-variable-buffer-local
- (defvar eci-return-type nil
-   "The return type of the last received return value as a string."))
-
-(make-variable-buffer-local
- (defvar eci-return-value nil
-   "The last received return value as a string."))
-
-(make-variable-buffer-local
- (defvar eci-result nil
-   "The last received return value as a Lisp Object."))
+	  eci-result (if lcode (eval (cdar lcode)) value))))
 
 (defun ecasound-output-filter (string)
   "Parse ecasound process output.

  :type 'number)

(defcustom ecasound-mode-line-format
  '("-"
    mode-line-frame-identification
    mode-line-buffer-identification
    eci-engine-status " "
    ecasound-mode-string
    " %[("
    (:eval (mode-line-mode-name))
    mode-line-process
    minor-mode-alist
    "%n"
    ")%]--"
   (line-number-mode "L%l--")
   (column-number-mode "C%c--")
   (-3 . "%p")
   "-%-")
  "*Mode Line Format used in `ecasound-iam-mode'."
  :group 'ecasound
  :type '(repeat

	       (setq eci-cs-selected (eci-command "cs-selected"
						  buffer-or-process)))))
    (if (interactive-p)
	(message "Selected chainsetup: %s" val))
    val))

(defeci cs-set-position
  ((pos
    (if current-prefix-arg
	(prefix-numeric-value current-prefix-arg)
      (read-minibuffer "Position: ")) "%f"))
  "Sets the chainsetup position to POS seconds from the beginning.
Position of all inputs and outputs attached to the selected chainsetup is also
affected."
  :alias (cs-setpos setpos set-position))
  
(defeci cs-status)

(defeci c-add ((chains "sChain(s) to add: " "%s"))
