Unicode SynEditのTSynMemoの不具合?メモ

http://mh-nexus.de/en/unisynedit.php
Delphi2009でUnicode SynEditのSynMemoを使ってみたのだが、空ではない行の行末でエンターキーを入力した場合、キャレット位置が変わらなかった。
SynEditのコードを読んで原因特定するのが大変そうなので、とりあえずKeyPressでキャレット位置を変えることにした。

procedure TForm1.SynMemo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Ord(Key) = VK_RETURN then
    if Length(SynMemo1.LineText) <> 0 then
      if SynMemo1.CaretX = Length(SynMemo1.LineText) + 1 then
        if StringReplace(SynMemo1.LineText, ' ', '', [rfReplaceAll]) <> '' then
          SynMemo1.CaretY := SynMemo1.CaretY + 1;
end;