Cf. http://bugs.debian.org/561458
$ ls -1 20-name-change+my.21-compile-fixes.dpatch 20-name-change~my.21-compile-fixes.patch 20-name-change=my.21-compile-fixes.patch 20-name-cha...@my.21-compile-fixes.patch 20-name-change.patch According to ASCII table http://asciitable.com/ the items are not presented in correct order. In ASCII, that would be: $ ls -1 20-name-change+my.21-compile-fixes.dpatch 20-name-change.patch 20-name-change=my.21-compile-fixes.patch 20-name-cha...@my.21-compile-fixes.patch 20-name-change~my.21-compile-fixes.patch SUGGESTION The LC_* variables seem to affect the listing order, but this is not mentioned in the manual page. Please add following paragraph, as seen in sort(1), to read: *** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values. Jari