             (if (< index data-length)
               (let [char (nth data index)
                     next-char (if (< index (- data-length 1))
-                                (nth data (+ index 1))
+                                (nth data (inc index))
                                 nil)
                     str-char (str char)]
                 (case state


                    "\r"
                    (if (and (= newline :cr+lf) (not in-quoted-field))
                      (recur (+ index 1)
                             :in-field
                             in-quoted-field
                             field-buffer
                             rows)
                      (recur (+ index 1)
                             :in-field
                             in-quoted-field
                             (str field-buffer char)

                  :end-field
                  (condp = str-char
                    "\""
                    (recur (inc index) :in-field true field-buffer rows)

                    separator
                    (recur (inc index)
