Добрый день! Помогите, пожалуйста, разобраться, что я делаю не так!

Имеем: HP iPaq 1950; самолично спаянный кабель для iPaq`а на COM порт; принтер этикеток Зебра, тоже, как ни странно, с COM-портовым входом.
Кабель проверен с помощью внешнего модема — iPaq успешно звонит интернет-провайдеру и устанавливает соединение.
Работ с COM портом отлажена на эмуляторе.
Вот код:
SerialPort p = new SerialPort("COM1", 19200);
p.DataBits = 8;
p.Parity = Parity.None;
p.StopBits = StopBits.One;
p.Handshake = Handshake.None;
p.Encoding = Encoding.GetEncoding(1251);
p.WriteTimeout = 500;
p.ReadTimeout = 500;
try
{
p.Open();
}
catch (Exception ex)
{
}
p.Write("! 0 200 200 215 1\r\n");
// другие команды принтеру
p.Write("PRINT\r\n");
p.Close();
p.Dispose();
Эмулятор исправно посылает данные принтеру, который печатает этикетку.
Теперь о том, что происходит на живом КПК.
Программа 1 (ОДИН) раз печатает одну этикетку. После этого, хотя какие-то данные и отправляются в COM порт, принтер не печатает. Стоит программу закрыть и открыть заново — опять печатает только 1 этикетка.
Заранее спасибо за помощь!