C# SerialPort - Receiving extra 255 bytes

Wow... Good test. Now I'm totally confused. Here is what happend. I modified the C# program a bit more than you suggested:

static void Main(string[] args)
        {
            SerialPort serial = new SerialPort("COM4", 9600);

            Thread.Sleep(5000);

            serial.Open();

            Thread.Sleep(5000);

            Console.WriteLine("Press any key to send 'A' to Arduino...");
            Console.ReadKey();

            Thread.Sleep(5000);

            serial.Write("A");

            Console.ReadKey();

        }

Now I'm during the excution and I see "Press any key to send 'A' to Arduino..." on the Windows Console and "255255255255255255-1" on Arduino's LCD. I'm clicking enter in Windows Console and... Nothing happend so I guess the 'A' has been sent to Arduino but the If condition (if 5 or more bytes) blocked outputing it to LCD.
I'm now restarting the C# program without resetting the Arduino... And again program reached the "Press any key [...]" and arduino displayed "65255255255255-1-1". So as expected Arduino received the 'A' sign from previous program instance and new serial.Open() again sent extra 255s.

That is weird. Why serial.Open() sends these 255 bytes? And why is it always 6 after Arduino reset and 4 on every next Open()?

PS. I use Programming USB Arduino's DUO port.