           proc (.start bldr)
           env  (ana/empty-env)
           core (io/resource "cljs/core.cljs")
-          root-path (.getCanonicalFile output-dir)
-          rewrite-path (str (.getPath root-path) File/separator "goog")]
+          ;; represent paths as vectors so we can emit JS arrays, this is to
+          ;; paper over Windows issues with minimum hassle - David
+          path (.getPath (.getCanonicalFile output-dir))
+          [fc & cs] (rest (util/path-seq path)) ;; remove leading empty string
+          root (.substring path 0 (+ (.indexOf path fc) (count fc)))
+          root-path (vec (cons root cs))
+          rewrite-path (conj root-path "goog")]
       ;; TODO: temporary hack, should wait till we can read the start string
       ;; from the process - David
       (Thread/sleep 300)

  (node-eval repl-env
    (str "goog.require('" (comp/munge (first provides)) "')")))

(defn setup
  ([repl-env] (setup repl-env nil))
  ([repl-env opts]

(ns cljs.repl.node
  (:require [clojure.string :as string]
            [clojure.java.io :as io]
            [cljs.util :as util]
            [cljs.analyzer :as ana]
            [cljs.compiler :as comp]
            [cljs.repl :as repl]
