I move a valid question by BBasile here from 1.6.4 release thread:
Copying between two Coedit instances works so it has to be something really specific to Lazarus.
In a first place, why didn't you use the simple clipboard operations (.AsText) ?
As I said SynEdit puts additional info on the clipboard. (column mode (if active), folded lines / so pasting into another SynEdit restores folds, if option is set)
For that SynEdit registers a special clipboard format, and puts binary info in there (like an image editor can put an image (binary) on the clipboard).
Normally this is done in ADDITION to CF_TEXT. So other controlls ignore the unknown data.
Normally the SynEdit blob does NOT contain a copy of the text, except for the special case below.
But if you copy SynEdit to SynEdit (Afaik at least mouse middle click) then it works different.
The source SynEdit does AquireClipboard, but does not put anything on it.
The target SynEdit will (on paste) ask, and it will ask by sending which formats it does accept.
So the source SynEdit only puts its special format on the clipboard. If that is stripped of #0 it may become invalid. And the target synedit will have nothing to go.
So if #0 get stripped of not text date (images, audio, synedits-data), when those go on the clipboard, then they may become invalid.