--- ../xrdp-0.4.0~dfsg/xrdp/xrdp_bitmap.c	2007-05-06 08:50:45.000000000 +0200
+++ xrdp/xrdp_bitmap.c	2009-01-14 20:43:26.000000000 +0100
@@ -1396,7 +1396,9 @@
                                     self->wm->num_lock,
                                     self->wm->scroll_lock,
                                     self->wm->session->client_info->keylayout);
-        if ((unsigned char)c >= 32)
+        int len;
+        len = g_strlen(text);
+        if ((unsigned char)c >= 32 && len < 255)
         {
           add_char_at(self->caption1, c, self->edit_pos);
           self->edit_pos++;
