   (throw (ex-info (apply str msg)
                   (merge {:type :reader-exception}
                          (when (indexing-reader? rdr)
-                           {:line (get-line-number rdr)
-                            :column (get-column-number rdr)})))))
+                           (merge
+                            {:line (get-line-number rdr)
+                             :column (get-column-number rdr)}
+                            (when-let [file-name (get-file-name rdr)]
+                              {:file file-name})))))))

   :get-column-number (compile-if >=clojure-1-5-alpha*?
                        (fn [rdr]
                          (.getColumnNumber ^LineNumberingPushbackReader rdr))
                        (fn [rdr] 0))})

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Public API


(deftype IndexingPushbackReader
    [rdr ^:unsynchronized-mutable line ^:unsynchronized-mutable column
     ^:unsynchronized-mutable line-start? ^:unsynchronized-mutable prev file-name]
  Reader
  (read-char [reader]
    (when-let [ch (read-char rdr)]
