                                true
                                (str field-buffer char)
                                rows)
-                        (recur (+ index 1) :in-field false field-buffer rows))
-                      (recur (+ index 1)
+                        (recur (inc index) :in-field false field-buffer rows))
+                      (recur (inc index)
                              :in-field
                              true
                              field-buffer


                    "\n"
                    (if in-quoted-field
                      (recur (+ index 1)
                             :in-field
                             in-quoted-field
                             (str field-buffer char)
                             rows)
                      (recur (+ index 1)
                             :end-line
                             in-quoted-field
                             ""
                             (conj-in rows last-row-index field-buffer)))

                    (recur (+ index 1)
                           :in-field
                           in-quoted-field
                           (str field-buffer char)

                           ""
                           (conj-in rows last-row-index ""))

                    (recur (inc index) :in-field in-quoted-field str-char rows))

                  :end-line
                  (case str-char
                    "\""
                    (recur (inc index)
                           :in-field
                           true
                           field-buffer
                           (conj (or rows []) []))

                    (recur (inc index)
                           :in-field
                           in-quoted-field
                           (str field-buffer char)
