 
   "
   [key value & kvs]
-  (swap! *global-options* #(apply assoc (list* % key value kvs))))
-
+  (let [options (apply hash-map key value kvs)]
+    (check-valid-options options :user :ssh-options :scp-options :rsync-options)
+    (swap! *global-options* merge options)))
+  
 (defn clear-options!
   "Clear global options"
   []

                   includes (:includes cluster)
                   debug (:debug cluster)
                   log (:log cluster)]
               (when-exit (nil? task)
                          (str "No task named " (name task-name)))
               (when-exit (and (empty? addresses)

        tmp (if use-tmp
              (or *tmp-dir* (str "/tmp/control-" (System/currentTimeMillis) "/"))
              remote)]
    (check-valid-options m :scp-options :sudo :mode :ssh-options)
    (log-with-tag host "scp" scp-options
      (join " " (concat files [ " ==> " tmp])))
    (if use-tmp
