 (defn eval-expression
   [repl-view log-component client expr]
   (try
-    (handle-responses repl-view log-component expr
-      (repl/message client (if (map? expr)
-                             expr
-                             {:op :eval :code expr :ns (.getCurrentNamespace repl-view)})))  
+    (repl/message client
+      (if (map? expr)
+        expr
+        {:op :eval :code expr :ns (.getCurrentNamespace repl-view)}))  
     (catch Throwable t
       (CCWPlugin/logError (eval-failure-msg nil expr) t)
       (log log-component (eval-failure-msg nil expr) :err))))

                                                        .getLaunch
                                                        ccw.launching.LaunchUtils/getProjectName))
        ^StyledText input-widget (.viewerWidget repl-view)
        ; a bunch of atoms are just fine, since access to them is already serialized via the SWT event thread
        history (atom history)
        current-step (atom -1)
        retained-input (atom nil)

        session-client (repl/client-session repl-client :session session-id)
        responses-promise (promise)]
    (.setHistoryActionFn repl-view history-action-fn)
    
    ;; TODO need to make client-session accept a single arg to avoid
    ;; dummy message sends
    (handle-responses repl-view log-panel nil (session-client {:op "describe"}))
    
    (comp (partial eval-expression repl-view log-panel session-client)
      (fn [expr add-to-log?]
        (reset! retained-input nil)
