diff -ur vte-0.11.12/src/vte.c vte-0.11.12-my/src/vte.c
--- vte-0.11.12/src/vte.c	2005-03-03 01:52:57.000000000 +0300
+++ vte-0.11.12-my/src/vte.c	2005-06-07 10:26:37.000000000 +0400
@@ -335,6 +335,7 @@
 
 	gboolean palette_initialized;
 	gboolean highlight_color_set;
+	gboolean highlight_reversed;
 	gboolean cursor_color_set;
 	struct vte_palette_entry {
 		guint16 red, green, blue;
@@ -6662,6 +6663,28 @@
 }
 
 /**
+ * vte_terminal_set_highlight_reversed:
+ * @terminal: a #VteTerminal
+ * @setting: TRUE if reversed text should be drawn using highlight color 
+ *
+ * Changes the value of the terminal's use highlight for reversed setting. 
+ * When this option is enabled and highlight color is set
+ * (using vte_terminal_set_color_highlight()), reversed text will be
+ * drawn using normal foreground and highlight color as a background.
+ * Otherwise reversed text will be be drawn with foreground and background
+ * colors reversed.
+ *
+ * Since 0.11.14
+ *
+ */
+void
+vte_terminal_set_highlight_reversed(VteTerminal *terminal, gboolean setting)
+{
+	g_return_if_fail(VTE_IS_TERMINAL(terminal));
+	terminal->pvt->highlight_reversed = setting;
+}
+
+/**
  * vte_terminal_set_colors
  * @terminal: a #VteTerminal
  * @foreground: the new foreground color, or #NULL
@@ -11570,6 +11593,7 @@
 	/* Rendering data.  Try everything. */
 	pvt->palette_initialized = FALSE;
 	pvt->highlight_color_set = FALSE;
+	pvt->highlight_reversed = FALSE;
 	memset(&pvt->palette, 0, sizeof(pvt->palette));
 	pvt->draw = _vte_draw_new(GTK_WIDGET(terminal));
 
@@ -12328,8 +12352,15 @@
 		*back = VTE_DEF_HL;
 	} else
 	if (reverse ^ ((cell != NULL) && (cell->reverse))) {
-		*fore = cell ? cell->back : VTE_DEF_BG;
-		*back = cell ? cell->fore : VTE_DEF_FG;
+		/* Should we draw reversed as highlighted? */
+		if (terminal->pvt->highlight_reversed &&
+		    terminal->pvt->highlight_color_set) {
+			*fore = cell ? cell->fore : VTE_DEF_FG;
+			*back = VTE_DEF_HL;
+		} else {
+			*fore = cell ? cell->back : VTE_DEF_BG;
+			*back = cell ? cell->fore : VTE_DEF_FG;
+		}
 	} else {
 		*fore = cell ? cell->fore : VTE_DEF_FG;
 		*back = cell ? cell->back : VTE_DEF_BG;
diff -ur vte-0.11.12/src/vte.h vte-0.11.12-my/src/vte.h
--- vte-0.11.12/src/vte.h	2004-05-01 11:12:51.000000000 +0400
+++ vte-0.11.12-my/src/vte.h	2005-06-07 10:24:18.000000000 +0400
@@ -257,6 +257,8 @@
 				   const GdkColor *cursor_background);
 void vte_terminal_set_color_highlight(VteTerminal *terminal,
 				      const GdkColor *highlight_background);
+void vte_terminal_set_highlight_reversed(VteTerminal *terminal,
+				         gboolean highlight_reversed);
 void vte_terminal_set_colors(VteTerminal *terminal,
 			     const GdkColor *foreground,
 			     const GdkColor *background,
