--- vte.c.ORG	Sat Sep 20 12:27:48 2003
+++ vte.c	Sun Sep 21 01:46:02 2003
@@ -101,7 +101,7 @@ typedef gunichar wint_t;
 #define VTE_ADJUSTMENT_PRIORITY		G_PRIORITY_DEFAULT_IDLE
 #define VTE_INPUT_RETRY_PRIORITY	G_PRIORITY_HIGH
 #define VTE_INPUT_PRIORITY		G_PRIORITY_DEFAULT_IDLE
-#define VTE_CHILD_INPUT_PRIORITY	G_PRIORITY_DEFAULT_IDLE
+#define VTE_CHILD_INPUT_PRIORITY	G_PRIORITY_LOW 
 #define VTE_CHILD_OUTPUT_PRIORITY	G_PRIORITY_HIGH
 #define VTE_FX_PRIORITY			G_PRIORITY_DEFAULT_IDLE
 #define VTE_REGCOMP_FLAGS		REG_EXTENDED
@@ -109,7 +109,7 @@ typedef gunichar wint_t;
 #define VTE_INPUT_CHUNK_SIZE		0x1000
 #define VTE_INVALID_SOURCE		-1
 #define VTE_INVALID_BYTE		'?'
-#define VTE_COALESCE_TIMEOUT		2
+#define VTE_COALESCE_TIMEOUT		50
 
 /* The structure we use to hold characters we're supposed to display -- this
  * includes any supported visible attributes. */
@@ -7365,6 +7365,7 @@ vte_terminal_io_read(GIOChannel *channel
 	/* Read some data in from this channel. */
 	bcount = 0;
 	if (condition & G_IO_IN) {
+
 		/* We try not to overfill the incoming buffer below by cutting
 		 * down the read size if we already have pending data. */
 		bcount = sizeof(buf);
@@ -7376,8 +7377,23 @@ vte_terminal_io_read(GIOChannel *channel
 			bcount = sizeof(buf) / 2;
 		}
 		g_assert(bcount >= 0);
+
+#ifdef VTE_DEBUG
+                if (_vte_debug_on(VTE_DEBUG_IO)) {
+                   fprintf(stderr, "trying to read %d bytes, buf %d\n",
+                           bcount, sizeof(buf) / 2);
+                }
+#endif
+
 		g_assert(bcount <= sizeof(buf));
 		bcount = read(fd, buf, MAX(bcount, sizeof(buf) / 2));
+
+#ifdef VTE_DEBUG
+                if (_vte_debug_on(VTE_DEBUG_IO)) {
+                   fprintf(stderr, "was able to read %d bytes\n", bcount);
+                }
+#endif
+
 	}
 
 	/* Check for end-of-file. */
@@ -8627,12 +8643,17 @@ vte_terminal_match_hilite(VteTerminal *t
 	/* Check for matches. */
 	screen = terminal->pvt->screen;
 	delta = screen->scroll_delta;
+
+#ifndef VTE_DONT_HIGHLIGHT_PATTERNS
 	match = vte_terminal_match_check_internal(terminal,
 						  floor(x) / width,
 						  floor(y) / height + delta,
 						  NULL,
 						  &start,
 						  &end);
+#else
+        match = NULL;
+#endif
 
 	/* If there are no matches, repaint what we had matched before. */
 	if (match == NULL) {
