OK, turned on my Linux VM.
As it turns out: when the FileListBox is created, the Items is of class TExtendedStringList.
This class is derived from TStringList.
However, once the list gest updated and it has a handle allocated, Items is replaced by an instance of TGtkListStoreStringList, which is derived directly from TStringList.
And now typecasting Items to TStringList wil give an Invalid Typecast exception.
I also tested setting CaseSensitive to True in the TFileLIstBox constructor (you can typecast to TStringList there, since no handle is allocated) and that seems to work.
I'm not sure how that works, since TGtkListStoreStringList does not seem to have a CaseSensitive property...
[ETA]
TGtkListStoreStringList is case-sensitive. So it behaves as it should in this case, which is demonstarted by setting Directory when the FileListBox is already showen on the form (it has a handle): both cMap and cmap will be shown.
So, only when HandleAllocated is False, the behaviour is wrong, and can be fixed as described above.
Bart