diff -ur gnome-terminal-2.7.3.ORIG/src/gnome-terminal.glade2 gnome-terminal-2.7.3/src/gnome-terminal.glade2
--- gnome-terminal-2.7.3.ORIG/src/gnome-terminal.glade2	2004-06-28 17:21:48.000000000 +1000
+++ gnome-terminal-2.7.3/src/gnome-terminal.glade2	2004-07-02 15:25:49.000000000 +1000
@@ -1041,196 +1041,249 @@
 		  <property name="shadow_type">GTK_SHADOW_NONE</property>
 
 		  <child>
-		    <widget class="GtkTable" id="table24">
-		      <property name="border_width">12</property>
+		    <widget class="GtkAlignment" id="alignment10102">
 		      <property name="visible">True</property>
-		      <property name="n_rows">3</property>
-		      <property name="n_columns">4</property>
-		      <property name="homogeneous">False</property>
-		      <property name="row_spacing">12</property>
-		      <property name="column_spacing">12</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">0</property>
+		      <property name="right_padding">0</property>
 
 		      <child>
-			<widget class="GtkAlignment" id="alignment25">
+			<widget class="GtkTable" id="table24">
+			  <property name="border_width">12</property>
 			  <property name="visible">True</property>
-			  <property name="xalign">1.49012e-08</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">1</property>
-			  <property name="top_padding">0</property>
-			  <property name="bottom_padding">0</property>
-			  <property name="left_padding">0</property>
-			  <property name="right_padding">0</property>
+			  <property name="n_rows">3</property>
+			  <property name="n_columns">6</property>
+			  <property name="homogeneous">False</property>
+			  <property name="row_spacing">12</property>
+			  <property name="column_spacing">12</property>
 
 			  <child>
-			    <widget class="GtkColorButton" id="foreground-colorpicker">
+			    <widget class="GtkAlignment" id="alignment25">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="use_alpha">False</property>
-			      <property name="title" translatable="yes">Choose terminal text color</property>
-			      <property name="focus_on_click">True</property>
+			      <property name="xalign">1.49012e-08</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xscale">0</property>
+			      <property name="yscale">1</property>
+			      <property name="top_padding">0</property>
+			      <property name="bottom_padding">0</property>
+			      <property name="left_padding">0</property>
+			      <property name="right_padding">0</property>
+
+			      <child>
+				<widget class="GtkColorButton" id="foreground-colorpicker">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="use_alpha">False</property>
+				  <property name="title" translatable="yes">Choose terminal text color</property>
+				  <property name="focus_on_click">True</property>
+				  <accessibility>
+				    <atkproperty name="AtkObject::accessible_name" translatable="yes">Color Selector</atkproperty>
+				    <atkproperty name="AtkObject::accessible_description" translatable="yes">Open a dialog to specify the color</atkproperty>
+				  </accessibility>
+				</widget>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">1</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="label40">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">_Text color:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">foreground-colorpicker</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="color-scheme-optionmenu-label">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Built-_in schemes:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">color-scheme-optionmenu</property>
 			      <accessibility>
-				<atkproperty name="AtkObject::accessible_name" translatable="yes">Color Selector</atkproperty>
-				<atkproperty name="AtkObject::accessible_description" translatable="yes">Open a dialog to specify the color</atkproperty>
+				<atkproperty name="AtkObject::accessible_name" translatable="yes">Built-in foreground and background color schemes:</atkproperty>
 			      </accessibility>
 			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
 			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">1</property>
-			  <property name="right_attach">2</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
 
-		      <child>
-			<widget class="GtkLabel" id="label40">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Text color:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">foreground-colorpicker</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">1</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
+			  <child>
+			    <widget class="GtkLabel" id="label41">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">_Background color:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">background-colorpicker</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 
-		      <child>
-			<widget class="GtkOptionMenu" id="color-scheme-optionmenu">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">-1</property>
-			  <accessibility>
-			    <atkrelation target="color-scheme-optionmenu-label" type="labelled-by"/>
-			  </accessibility>
+			  <child>
+			    <widget class="GtkColorButton" id="background-colorpicker">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="use_alpha">False</property>
+			      <property name="title" translatable="yes">Choose terminal background color</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">3</property>
+			      <property name="right_attach">4</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 
-			  <child internal-child="menu">
-			    <widget class="GtkMenu" id="convertwidget13">
+			  <child>
+			    <widget class="GtkLabel" id="label467">
 			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">_Cursor color:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">cursor-colorpicker</property>
 			    </widget>
+			    <packing>
+			      <property name="left_attach">4</property>
+			      <property name="right_attach">5</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
 			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">2</property>
-			  <property name="right_attach">4</property>
-			  <property name="top_attach">1</property>
-			  <property name="bottom_attach">2</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
 
-		      <child>
-			<widget class="GtkLabel" id="color-scheme-optionmenu-label">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Built-_in schemes:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">color-scheme-optionmenu</property>
-			  <accessibility>
-			    <atkproperty name="AtkObject::accessible_name" translatable="yes">Built-in foreground and background color schemes:</atkproperty>
-			  </accessibility>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">2</property>
-			  <property name="top_attach">1</property>
-			  <property name="bottom_attach">2</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
+			  <child>
+			    <widget class="GtkColorButton" id="cursor-colorpicker">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="use_alpha">False</property>
+			      <property name="title" translatable="yes">Choose terminal text color</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">5</property>
+			      <property name="right_attach">6</property>
+			      <property name="top_attach">2</property>
+			      <property name="bottom_attach">3</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 
-		      <child>
-			<widget class="GtkCheckButton" id="use-theme-colors-checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Use colors from s_ystem theme</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">4</property>
-			  <property name="top_attach">0</property>
-			  <property name="bottom_attach">1</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
+			  <child>
+			    <widget class="GtkCheckButton" id="use-theme-colors-checkbutton">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Use colors from s_ystem theme</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">6</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 
-		      <child>
-			<widget class="GtkLabel" id="label41">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Background color:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_CENTER</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">background-colorpicker</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">2</property>
-			  <property name="right_attach">3</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
+			  <child>
+			    <widget class="GtkOptionMenu" id="color-scheme-optionmenu">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="history">-1</property>
+			      <accessibility>
+				<atkrelation target="color-scheme-optionmenu-label" type="labelled-by"/>
+			      </accessibility>
 
-		      <child>
-			<widget class="GtkColorButton" id="background-colorpicker">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="use_alpha">False</property>
-			  <property name="title" translatable="yes">Choose terminal background color</property>
-			  <property name="focus_on_click">True</property>
-			  <accessibility>
-			    <atkproperty name="AtkObject::accessible_name" translatable="yes">Color Selector</atkproperty>
-			    <atkproperty name="AtkObject::accessible_description" translatable="yes">Open a dialog to specify the color</atkproperty>
-			  </accessibility>
+			      <child internal-child="menu">
+				<widget class="GtkMenu" id="convertwidget13">
+				  <property name="visible">True</property>
+				</widget>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">6</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 			</widget>
-			<packing>
-			  <property name="left_attach">3</property>
-			  <property name="right_attach">4</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
 		      </child>
 		    </widget>
 		  </child>
diff -ur gnome-terminal-2.7.3.ORIG/src/profile-editor.c gnome-terminal-2.7.3/src/profile-editor.c
--- gnome-terminal-2.7.3.ORIG/src/profile-editor.c	2004-02-14 18:22:21.000000000 +1100
+++ gnome-terminal-2.7.3/src/profile-editor.c	2004-10-07 15:50:43.000000000 +1000
@@ -395,12 +395,13 @@
 {
   GdkColor color;
   GdkColor bg;
+  GdkColor cursor;
 
   gtk_color_button_get_color (GTK_COLOR_BUTTON (colorpicker), &color);
 
-  terminal_profile_get_color_scheme (profile, NULL, &bg);
+  terminal_profile_get_color_scheme (profile, NULL, &bg, &cursor);
   
-  terminal_profile_set_color_scheme (profile, &color, &bg);
+  terminal_profile_set_color_scheme (profile, &color, &bg, &cursor);
 }
 
 static void
@@ -409,12 +410,28 @@
 {
   GdkColor color;
   GdkColor fg;
+  GdkColor cursor;
 
   gtk_color_button_get_color (GTK_COLOR_BUTTON (colorpicker), &color);
 
-  terminal_profile_get_color_scheme (profile, &fg, NULL);
+  terminal_profile_get_color_scheme (profile, &fg, NULL, &cursor);
   
-  terminal_profile_set_color_scheme (profile, &fg, &color);
+  terminal_profile_set_color_scheme (profile, &fg, &color, &cursor);
+}
+
+static void
+cursor_color_set (GtkWidget           *colorpicker,
+                  TerminalProfile     *profile)
+{
+  GdkColor color;
+  GdkColor fg;
+  GdkColor bg;
+  
+  gtk_color_button_get_color (GTK_COLOR_BUTTON (colorpicker), &color);
+
+  terminal_profile_get_color_scheme (profile, &fg, &bg, NULL);
+  
+  terminal_profile_set_color_scheme (profile, &fg, &bg, &color);
 }
 
 static void
@@ -424,11 +441,15 @@
   int i;
   
   i = gtk_option_menu_get_history (GTK_OPTION_MENU (option_menu));
+
+  /* XXX: For now, the schemes are just monochrome and the foreground
+     sets the cursor. */
   
   if (i < G_N_ELEMENTS (color_schemes))
     terminal_profile_set_color_scheme (profile,
                                        &color_schemes[i].foreground,
-                                       &color_schemes[i].background);
+                                       &color_schemes[i].background,
+                                       &color_schemes[i].foreground);
   else
     ; /* "custom" selected, no change */
 }
@@ -966,6 +987,11 @@
                         G_CALLBACK (background_color_set),
                         profile);
 
+      w = glade_xml_get_widget (xml, "cursor-colorpicker");
+      g_signal_connect (G_OBJECT(w), "color_set",
+                        G_CALLBACK (cursor_color_set),
+                        profile);
+
       w = glade_xml_get_widget (xml, "color-scheme-optionmenu");
       init_color_scheme_menu (w);
       profile_editor_update_color_scheme_menu (editor, profile);
@@ -1342,6 +1368,7 @@
     {
       set_insensitive (editor, "foreground-colorpicker", TRUE);
       set_insensitive (editor, "background-colorpicker", TRUE);
+      set_insensitive (editor, "cursor-colorpicker", TRUE);
       set_insensitive (editor, "color-scheme-optionmenu", TRUE);
     }
   else
@@ -1351,6 +1378,9 @@
       
       set_insensitive (editor, "background-colorpicker",
                        mask->background_color);
+
+      set_insensitive (editor, "cursor-colorpicker",
+                       mask->cursor_color);
       
       set_insensitive (editor, "color-scheme-optionmenu",
                        (mask->background_color) ||
@@ -1529,28 +1559,31 @@
                                      TerminalProfile *profile)
 {
   GtkWidget *w;
-  GdkColor color1, color2;
+  GdkColor color1, color2, cursor_color;
   
-  terminal_profile_get_color_scheme (profile, &color1, &color2);
+  terminal_profile_get_color_scheme (profile, &color1, &color2, &cursor_color);
   
   w = profile_editor_get_widget (editor, "foreground-colorpicker");
   colorpicker_set_if_changed (w, &color1);
   
   w = profile_editor_get_widget (editor, "background-colorpicker");
   colorpicker_set_if_changed (w, &color2);
+
+  w = profile_editor_get_widget (editor, "cursor-colorpicker");
+  colorpicker_set_if_changed (w, &cursor_color);
 }
 
 static void
 profile_editor_update_color_scheme_menu (GtkWidget       *editor,
                                          TerminalProfile *profile)
 {
-  GdkColor fg, bg;
+  GdkColor fg, bg, cursor;
   int i;
   GtkWidget *w;
 
   w = profile_editor_get_widget (editor, "color-scheme-optionmenu");
   
-  terminal_profile_get_color_scheme (profile, &fg, &bg);
+  terminal_profile_get_color_scheme (profile, &fg, &bg, &cursor);
 
   i = 0;
   while (i < G_N_ELEMENTS (color_schemes))
@@ -1558,7 +1591,8 @@
       if (gdk_color_equal (&color_schemes[i].foreground,
                            &fg) &&
           gdk_color_equal (&color_schemes[i].background,
-                           &bg))
+                           &bg) &&
+          gdk_color_equal (&color_schemes[i].foreground, &cursor))
         break;
       ++i;
     }
diff -ur gnome-terminal-2.7.3.ORIG/src/terminal-profile.c gnome-terminal-2.7.3/src/terminal-profile.c
--- gnome-terminal-2.7.3.ORIG/src/terminal-profile.c	2004-05-12 08:19:04.000000000 +1000
+++ gnome-terminal-2.7.3/src/terminal-profile.c	2004-10-07 14:55:19.000000000 +1000
@@ -43,6 +43,7 @@
 #define KEY_DEFAULT_SHOW_MENUBAR "default_show_menubar"
 #define KEY_FOREGROUND_COLOR "foreground_color"
 #define KEY_BACKGROUND_COLOR "background_color"
+#define KEY_CURSOR_COLOR "cursor_color"
 #define KEY_TITLE "title"
 #define KEY_TITLE_MODE "title_mode"
 #define KEY_ALLOW_BOLD "allow_bold"
@@ -89,6 +90,7 @@
   char *visible_name;
   GdkColor foreground;
   GdkColor background;
+  GdkColor cursor;
   char *title;
   TerminalTitleMode title_mode;
   char *word_chars;
@@ -268,6 +270,7 @@
   profile->priv->foreground.red = 0;
   profile->priv->foreground.green = 0;
   profile->priv->foreground.blue = 0;
+  profile->priv->cursor = profile->priv->foreground;
   profile->priv->background.red = 0xFFFF;
   profile->priv->background.green = 0xFFFF;
   profile->priv->background.blue = 0xDDDD;
@@ -630,7 +633,8 @@
 void
 terminal_profile_get_color_scheme (TerminalProfile  *profile,
                                    GdkColor         *foreground,
-                                   GdkColor         *background)
+                                   GdkColor         *background,
+                                   GdkColor         *cursor)
 {
   g_return_if_fail (TERMINAL_IS_PROFILE (profile));
   
@@ -638,6 +642,8 @@
     *foreground = profile->priv->foreground;
   if (background)
     *background = profile->priv->background;
+  if (cursor)
+    *cursor = profile->priv->cursor;
 }
 
 static char*
@@ -661,10 +667,12 @@
 void
 terminal_profile_set_color_scheme (TerminalProfile  *profile,
                                    const GdkColor   *foreground,
-                                   const GdkColor   *background)
+                                   const GdkColor   *background,
+                                   const GdkColor   *cursor)
 {
   char *fg_key;
   char *bg_key;
+  char *cursor_key;
   char *str;
 
   RETURN_IF_NOTIFYING (profile);
@@ -691,6 +699,17 @@
   
   g_free (fg_key);
   g_free (bg_key);
+
+  {
+    cursor_key = gconf_concat_dir_and_key (profile->priv->profile_dir,
+                                           KEY_CURSOR_COLOR);
+
+    str = color_to_string (cursor);
+    gconf_client_set_string (profile->priv->conf,
+                             cursor_key, str, NULL);
+    g_free(str);
+    g_free(cursor_key);
+  }
 }
 
 const char*
@@ -1557,6 +1576,24 @@
 }
 
 static gboolean
+set_cursor_color (TerminalProfile *profile,
+                      const char      *str_val)
+{
+  GdkColor color;
+  
+  if (str_val && gdk_color_parse (str_val, &color) &&
+      !gdk_color_equal (&color, &profile->priv->cursor))
+    {
+      profile->priv->cursor = color;
+      return TRUE;
+    }
+  else
+    {
+      return FALSE;
+    }
+}
+
+static gboolean
 set_title (TerminalProfile *profile,
            const char      *candidate_name)
 {
@@ -1957,6 +1994,7 @@
   UPDATE_STRING  (KEY_VISIBLE_NAME,         visible_name);
   UPDATE_STRING  (KEY_FOREGROUND_COLOR,     foreground_color);
   UPDATE_STRING  (KEY_BACKGROUND_COLOR,     background_color);
+  UPDATE_STRING  (KEY_CURSOR_COLOR,         cursor_color);
   UPDATE_STRING  (KEY_TITLE,                title);
   UPDATE_STRING  (KEY_TITLE_MODE,           title_mode);
   UPDATE_BOOLEAN (KEY_ALLOW_BOLD,           allow_bold);
@@ -2103,6 +2141,7 @@
      UPDATE_STRING  (KEY_VISIBLE_NAME,           visible_name,           NULL);
      UPDATE_STRING  (KEY_FOREGROUND_COLOR,       foreground_color,       NULL);
      UPDATE_STRING  (KEY_BACKGROUND_COLOR,       background_color,       NULL);
+     UPDATE_STRING  (KEY_CURSOR_COLOR,           cursor_color,           NULL);
      UPDATE_STRING  (KEY_TITLE,                  title,                  NULL);
      UPDATE_STRING  (KEY_TITLE_MODE,             title_mode,             NULL);
      UPDATE_BOOLEAN (KEY_ALLOW_BOLD,             allow_bold,             FALSE);
@@ -2624,6 +2663,17 @@
 
   g_free (key);
   key = gconf_concat_dir_and_key (profile_dir,
+                                  KEY_CURSOR_COLOR);
+  s = color_to_string (&base_profile->priv->cursor);
+  gconf_client_set_string (base_profile->priv->conf,
+                           key, s,                           
+                           &err);
+  g_free (s);
+
+  BAIL_OUT_CHECK ();
+
+  g_free (key);
+  key = gconf_concat_dir_and_key (profile_dir,
                                   KEY_TITLE);
   /* default title is profile name, not copied from base */
   gconf_client_set_string (base_profile->priv->conf,
diff -ur gnome-terminal-2.7.3.ORIG/src/terminal-profile.h gnome-terminal-2.7.3/src/terminal-profile.h
--- gnome-terminal-2.7.3.ORIG/src/terminal-profile.h	2004-05-10 13:50:07.000000000 +1000
+++ gnome-terminal-2.7.3/src/terminal-profile.h	2004-10-07 14:55:35.000000000 +1000
@@ -39,6 +39,7 @@
   unsigned int default_show_menubar : 1;
   unsigned int foreground_color : 1;
   unsigned int background_color : 1;
+  unsigned int cursor_color : 1;
   unsigned int title : 1;
   unsigned int title_mode : 1;
   unsigned int allow_bold : 1;
@@ -152,7 +153,8 @@
 int                       terminal_profile_get_scrollback_lines     (TerminalProfile *profile);
 void                      terminal_profile_get_color_scheme         (TerminalProfile *profile,
                                                                      GdkColor        *foreground,
-                                                                     GdkColor        *background);
+                                                                     GdkColor        *background,
+                                                                     GdkColor        *cursor);
 const char*               terminal_profile_get_word_chars           (TerminalProfile *profile);
 const char*               terminal_profile_get_title                (TerminalProfile *profile);
 TerminalTitleMode         terminal_profile_get_title_mode           (TerminalProfile *profile);
@@ -201,7 +203,8 @@
                                                 int                        lines);
 void terminal_profile_set_color_scheme         (TerminalProfile           *profile,
                                                 const GdkColor            *foreground,
-                                                const GdkColor            *background);
+                                                const GdkColor            *background,
+                                                const GdkColor            *cursor);
 void terminal_profile_set_title                (TerminalProfile           *profile,
                                                 const char                *title);
 void terminal_profile_set_title_mode           (TerminalProfile           *profile,
diff -ur gnome-terminal-2.7.3.ORIG/src/terminal-screen.c gnome-terminal-2.7.3/src/terminal-screen.c
--- gnome-terminal-2.7.3.ORIG/src/terminal-screen.c	2004-06-28 17:24:12.000000000 +1000
+++ gnome-terminal-2.7.3/src/terminal-screen.c	2004-10-07 15:45:25.000000000 +1000
@@ -662,7 +662,7 @@
 static void
 update_color_scheme (TerminalScreen *screen)
 {
-  GdkColor fg, bg;
+  GdkColor fg, bg, cursor;
   GdkColor palette[TERMINAL_PALETTE_SIZE];
   
   if (screen->priv->term == NULL ||
@@ -674,17 +674,17 @@
 
   if (terminal_profile_get_use_theme_colors (screen->priv->profile))
     {
-      fg = screen->priv->term->style->text[GTK_STATE_NORMAL];
+      cursor = fg = screen->priv->term->style->text[GTK_STATE_NORMAL];
       bg = screen->priv->term->style->base[GTK_STATE_NORMAL];
     }
   else
     {
       terminal_profile_get_color_scheme (screen->priv->profile,
-                                         &fg, &bg);
+                                         &fg, &bg, &cursor);
     }
 
   terminal_widget_set_colors (screen->priv->term,
-                              &fg, &bg, palette);
+                              &fg, &bg, &cursor, palette);
 }
 
 /* Note this can be called on style_set, on prefs changing,
@@ -2129,7 +2129,7 @@
       {
         guint16 *data = (guint16 *)selection_data->data;
         GdkColor color;
-        GdkColor fg;
+        GdkColor fg, cursor;
         TerminalProfile *profile;
 
         if (selection_data->format != 16 ||
@@ -2154,9 +2154,9 @@
             terminal_profile_set_use_theme_colors (profile, FALSE);
             
             terminal_profile_get_color_scheme (profile,
-                                               &fg, NULL);
+                                               &fg, NULL, &cursor);
             
-            terminal_profile_set_color_scheme (profile, &fg, &color);
+            terminal_profile_set_color_scheme (profile, &fg, &color, &cursor);
           }
       }
       break;
diff -ur gnome-terminal-2.7.3.ORIG/src/terminal-widget.h gnome-terminal-2.7.3/src/terminal-widget.h
--- gnome-terminal-2.7.3.ORIG/src/terminal-widget.h	2004-06-28 17:25:36.000000000 +1000
+++ gnome-terminal-2.7.3/src/terminal-widget.h	2004-10-07 15:46:39.000000000 +1000
@@ -101,6 +101,7 @@
 void       terminal_widget_set_colors                 (GtkWidget            *widget,
                                                        const GdkColor       *foreground,
                                                        const GdkColor       *background,
+                                                       const GdkColor       *cursor,
                                                        const GdkColor       *palette_entries);
 void       terminal_widget_copy_clipboard             (GtkWidget            *widget);
 void       terminal_widget_paste_clipboard            (GtkWidget            *widget);
diff -ur gnome-terminal-2.7.3.ORIG/src/terminal-widget-vte.c gnome-terminal-2.7.3/src/terminal-widget-vte.c
--- gnome-terminal-2.7.3.ORIG/src/terminal-widget-vte.c	2004-06-28 17:24:59.000000000 +1000
+++ gnome-terminal-2.7.3/src/terminal-widget-vte.c	2004-10-07 15:46:15.000000000 +1000
@@ -25,6 +25,9 @@
 #include <string.h>
 #include <vte/vte.h>
 
+static const GdkColor red = {0, 0xeeee, 0, 0};
+  
+
 #define UNIMPLEMENTED /* g_warning (G_STRLOC": unimplemented") */
 
 typedef struct
@@ -396,12 +399,15 @@
 terminal_widget_set_colors (GtkWidget      *widget,
 			    const GdkColor *foreground,
 			    const GdkColor *background,
+                            const GdkColor *cursor,
 			    const GdkColor *palette_entries)
 {
   g_return_if_fail(VTE_IS_TERMINAL(widget));
   vte_terminal_set_colors(VTE_TERMINAL(widget), foreground, background,
 			  palette_entries, TERMINAL_PALETTE_SIZE);
   vte_terminal_set_background_tint_color(VTE_TERMINAL(widget), background);
+
+  vte_terminal_set_color_cursor(VTE_TERMINAL(widget), cursor);
 }
 
 void
