Eli Zaretskii writes: > Could you please provide a minimal recipe, starting from "emacs -Q", > that could be used to reproduce the problem? From emacs -Q: C-x C-f abc.ses RET " abc RET Result: The text is left justified. Emacs 24 wouldn't build for me, but I found that I could run the ses.el from Emacs 24 in Emacs 25, and that the bug was not present when I did so. Some manual bisecting of commits affecting ses.el produced these results: [bad]7348668952 * * lisp/ses.el (ses--letref): Quote value before it gets re-evaluated. [skip]0f2ed59206 * Spelling fixes. [skip]da8b9ab0d8 * Correct ses-truncate-cell bug implied by setting ses.el in lexical binding: row and col had been erronously made unbound. [skip]df5703a00d * * lisp/ses.el: Miscellaneous cleanups; use lexical-binding; avoid add-to-list. (ses-localvars): Remove ses--local-printer-list, unused. (ses--metaprogramming): New macro. Use it to defvar variables. (ses-set-localvars): Simplify. (ses--locprn, ses-cell): Use defstruct. Change ses-cell's property-list into an alist. (ses-locprn-get-compiled, ses-locprn-compiled-aset) (ses-locprn-get-def, ses-locprn-def-aset, ses-locprn-get-number): Remove; use defstruct accessors/setters instead. (ses-cell-formula-aset, ses-cell-printer-aset) (ses-cell-references-aset): Remove, use setf instead. (ses--alist-get): New function. (ses-cell-property): Rename from ses-cell-property-get and rewrite. Use an alist instead of a plist and don't do move-to-front since the list is always short. (ses-cell-property-get-fun, ses-cell-property-delq-fun) (ses-cell-property-set-fun, ses-cell-property-set) (ses-cell-property-pop-fun, ses-cell-property-get-handle) (ses-cell-property-handle-car, ses-cell-property-handle-setcar): Remove. (ses--letref): New macro. (ses-cell-property-pop): Rewrite. (ses--cell): Rename from ses-cell and make it into a function. Make `formula' fallback on `value' if nil. (ses--local-printer): Rename from ses-local-printer and make it into a function. (ses-set-cell): Turn it into a macro so finding the accessor from the field name is done at compile time. (ses-repair-cell-reference-all): Test presence of `sym' rather than `ref' before adding `sym' to :ses-repair-reference. (ses-calculate-cell): Use ses--letref rather than ses-cell-property-get-handle. (ses-write-cells): Use a single prin1-to-string. (ses-setter-with-undo): New function. (ses-aset-with-undo, ses-set-with-undo): Rewrite using it. (ses-unset-with-undo): Remove. (ses-load): Prefer apply' over `eval'. (ses-read-printer, ses-set-column-width): Use standard "(default foo)" format. [good]4f11561b82 * Adding support for SES local printer functions I looked through those and found a change in df5703a00d which looked like a likely suspect. Reverting it fixes the bug. It looks to me like the only thing the change affects is justification of text cells, but someone who is familiar with ses.el should have a look at it. Miroslav, once you have a version of Emacs with this bug fixed, using C-c C-l (for ses-recalculate-all) on your saved spreadsheets will fix the incorrect left alignment.