         (StringReader. code)
         (async/chan)
         {:init-state
-         {:ns (:ns opts 'cljs.user)}
+         {:ns init-ns}
 
          :repl-prompt
          (fn repl-prompt [repl-state])

           (swap! results-ref assoc :read-ex ex))

         :repl-result
         (fn repl-result [repl-state result-as-printed-string]
           (when-not (nil? result-as-printed-string)
             (swap! results-ref update :results conj result-as-printed-string)))


        {:keys [relay]}
        (get-runtime!)

        init-ns
        (:ns opts 'cljs.user)

        results-ref
        (atom {:results []
               :out ""
               :err ""
               :ns init-ns})]

    ;; FIXME: should this throw if worker isn't running?
    (when worker
