The doc string of the variable 'csv-comment-start' states that it is allowed to be nil: String that starts a comment line, or nil if no comment syntax. However, since commit 388bcb9a77118d7b7d9c42aa8b3f9fa2c892b930 (Fix 'csv-guess-separator' being confused by comments) this is no longer the case, because the variable is passed to 'string-to-char', which does not accept nil as input. As a result, if 'csv-comment-start' is nil, the separator cannot be guessed anymore, which may result in the wrong separator being guessed. Recipe to reproduce: - Start emacs -Q -L /path/to/csv-mode-1.27 (the current version on ELPA). - Load 'csv-mode.el'. - Set 'csv-comment-start-default' to nil. - Open a CSV file with non-standard separator (e.g., TAB, though make sure the file extension is '.csv', not '.tsv'.) - Check the buffer-local value of 'csv-separators': it should be ("\t"), but it is ("," "\t"). If you try to add a column to a line (hit TAB with point at EOL), you'll notice a comma being added as separator. Tiny patch attached.