diff -urN gnome-terminal.settings/src/gnome-terminal.glade2 gnome-terminal/src/gnome-terminal.glade2
--- gnome-terminal.settings/src/gnome-terminal.glade2	2002-09-13 17:25:32.000000000 -0400
+++ gnome-terminal/src/gnome-terminal.glade2	2002-10-21 20:44:44.000000000 -0400
@@ -956,7 +956,7 @@
 		    <widget class="GtkTable" id="table24">
 		      <property name="border_width">5</property>
 		      <property name="visible">True</property>
-		      <property name="n_rows">4</property>
+		      <property name="n_rows">5</property>
 		      <property name="n_columns">2</property>
 		      <property name="homogeneous">False</property>
 		      <property name="row_spacing">3</property>
@@ -1038,6 +1038,31 @@
 		      </child>
 
 		      <child>
+			<widget class="GtkLabel" id="labelx41">
+			  <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">1</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">8</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">cursor-colorpicker</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">4</property>
+			  <property name="bottom_attach">5</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>
@@ -1119,6 +1144,35 @@
 		      </child>
 
 		      <child>
+			<widget class="GtkAlignment" id="alignmentx26">
+			  <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>
+
+			  <child>
+			    <widget class="GnomeColorPicker" id="cursor-colorpicker">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="dither">True</property>
+			      <property name="use_alpha">False</property>
+			      <property name="title" translatable="yes">Choose cursor color</property>
+			    </widget>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">4</property>
+			  <property name="bottom_attach">5</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>
diff -urN gnome-terminal.settings/src/profile-editor.c gnome-terminal/src/profile-editor.c
--- gnome-terminal.settings/src/profile-editor.c	2002-10-15 21:38:34.000000000 -0400
+++ gnome-terminal/src/profile-editor.c	2002-10-21 19:53:33.000000000 -0400
@@ -268,6 +268,9 @@
       profile_editor_update_color_pickers (editor, profile);
     }
 
+  if (mask->cursor_color)
+    profile_editor_update_color_pickers (editor, profile);
+
   if (mask->title)
     profile_editor_update_title (editor, profile);
   
@@ -400,15 +403,16 @@
 {
   GdkColor color;
   GdkColor bg;
+  GdkColor cursor;
 
   color.red = r;
   color.green = g;
   color.blue = b;
 
   terminal_profile_get_color_scheme (profile,
-                                     NULL, &bg);
+                                     NULL, &bg, &cursor);
   
-  terminal_profile_set_color_scheme (profile, &color, &bg);
+  terminal_profile_set_color_scheme (profile, &color, &bg, &cursor);
 }
 
 static void
@@ -418,15 +422,35 @@
 {
   GdkColor color;
   GdkColor fg;
+  GdkColor cursor;
+
+  color.red = r;
+  color.green = g;
+  color.blue = b;
+
+  terminal_profile_get_color_scheme (profile,
+                                     &fg, NULL, &cursor);
+  
+  terminal_profile_set_color_scheme (profile, &fg, &color, &cursor);
+}
+
+static void
+cursor_color_set (GtkWidget       *colorpicker,
+                  guint r, guint g, guint b, guint a,
+                  TerminalProfile *profile)
+{
+  GdkColor color;
+  GdkColor fg;
+  GdkColor bg;
 
   color.red = r;
   color.green = g;
   color.blue = b;
 
   terminal_profile_get_color_scheme (profile,
-                                     &fg, NULL);
+                                     &fg, &bg, NULL);
   
-  terminal_profile_set_color_scheme (profile, &fg, &color);
+  terminal_profile_set_color_scheme (profile, &fg, &bg, &color);
 }
 
 static void
@@ -434,13 +458,17 @@
                       TerminalProfile *profile)
 {
   int i;
+  GdkColor cursor;
   
   i = gtk_option_menu_get_history (GTK_OPTION_MENU (option_menu));
   
+  terminal_profile_get_color_scheme (profile,
+                                     NULL, NULL, &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,
+                                       &cursor);
   else
     ; /* "custom" selected, no change */
 }
@@ -1048,6 +1076,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);
@@ -1578,15 +1611,18 @@
                                      TerminalProfile *profile)
 {
   GtkWidget *w;
-  GdkColor color1, color2;
+  GdkColor color1, color2, color3;
   
-  terminal_profile_get_color_scheme (profile, &color1, &color2);
+  terminal_profile_get_color_scheme (profile, &color1, &color2, &color3);
   
   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, &color3);
 }
 
 static void
@@ -1599,7 +1635,7 @@
 
   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, NULL);
 
   i = 0;
   while (i < G_N_ELEMENTS (color_schemes))
diff -urN gnome-terminal.settings/src/terminal-profile.c gnome-terminal/src/terminal-profile.c
--- gnome-terminal.settings/src/terminal-profile.c	2002-10-21 19:24:40.000000000 -0400
+++ gnome-terminal/src/terminal-profile.c	2002-10-21 19:29:57.000000000 -0400
@@ -42,6 +42,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"
@@ -88,6 +89,7 @@
   char *visible_name;
   GdkColor foreground;
   GdkColor background;
+  GdkColor cursor;
   char *title;
   TerminalTitleMode title_mode;
   char *word_chars;
@@ -269,6 +271,9 @@
   profile->priv->background.red = 0xFFFF;
   profile->priv->background.green = 0xFFFF;
   profile->priv->background.blue = 0xDDDD;
+  profile->priv->cursor.red = 0xAAAA;
+  profile->priv->cursor.green = 0x0000;
+  profile->priv->cursor.blue = 0x0000;
   profile->priv->in_notification_count = 0;
   profile->priv->title_mode = TERMINAL_TITLE_REPLACE;
   profile->priv->title = g_strdup (_("Terminal"));
@@ -627,7 +632,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));
   
@@ -635,6 +641,8 @@
     *foreground = profile->priv->foreground;
   if (background)
     *background = profile->priv->background;
+  if (cursor)
+    *cursor = profile->priv->cursor;
 }
 
 static char*
@@ -658,10 +666,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 *cr_key;
   char *str;
 
   RETURN_IF_NOTIFYING (profile);
@@ -688,6 +698,16 @@
   
   g_free (fg_key);
   g_free (bg_key);
+
+  if (cursor)
+    {
+      cr_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, cr_key, str, NULL);
+      g_free (str);
+      g_free (cr_key);
+    }
 }
 
 const char*
@@ -1527,6 +1547,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)
 {
@@ -1926,6 +1964,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);
@@ -2072,6 +2111,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)
@@ -2588,6 +2628,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 -urN gnome-terminal.settings/src/terminal-profile.h gnome-terminal/src/terminal-profile.h
--- gnome-terminal.settings/src/terminal-profile.h	2002-10-15 21:17:11.000000000 -0400
+++ gnome-terminal/src/terminal-profile.h	2002-10-21 20:56:58.000000000 -0400
@@ -38,6 +38,7 @@
            default_show_menubar:1,
            foreground_color:1,
            background_color:1,
+           cursor_color:1,
            title:1,
            title_mode:1,
            allow_bold:1,
@@ -153,7 +154,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 -urN gnome-terminal.settings/src/terminal-screen.c gnome-terminal/src/terminal-screen.c
--- gnome-terminal.settings/src/terminal-screen.c	2002-10-15 21:24:47.000000000 -0400
+++ gnome-terminal/src/terminal-screen.c	2002-10-21 19:35:12.000000000 -0400
@@ -477,7 +477,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 ||
@@ -487,19 +487,17 @@
   terminal_profile_get_palette (screen->priv->profile,
                                 palette);
 
+  terminal_profile_get_color_scheme (screen->priv->profile,
+                                     &fg, &bg, &cursor);
+
   if (terminal_profile_get_use_theme_colors (screen->priv->profile))
     {
       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);
-    }
 
   terminal_widget_set_colors (screen->priv->term,
-                              &fg, &bg, palette);
+                              &fg, &bg, &cursor, palette);
 }
 
 static void
@@ -1762,9 +1760,9 @@
             terminal_profile_set_use_theme_colors (profile, FALSE);
             
             terminal_profile_get_color_scheme (profile,
-                                               &fg, NULL);
+                                               &fg, NULL, NULL);
             
-            terminal_profile_set_color_scheme (profile, &fg, &color);
+            terminal_profile_set_color_scheme (profile, &fg, &color, NULL);
           }
       }
       break;
diff -urN gnome-terminal.settings/src/terminal-widget-vte.c gnome-terminal/src/terminal-widget-vte.c
--- gnome-terminal.settings/src/terminal-widget-vte.c	2002-10-21 20:32:35.000000000 -0400
+++ gnome-terminal/src/terminal-widget-vte.c	2002-10-21 19:46:30.000000000 -0400
@@ -282,11 +282,12 @@
 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);
+			  cursor, palette_entries, TERMINAL_PALETTE_SIZE);
 }
 
 void
diff -urN gnome-terminal.settings/src/terminal-widget-zvt.c gnome-terminal/src/terminal-widget-zvt.c
--- gnome-terminal.settings/src/terminal-widget-zvt.c	2002-07-14 17:20:54.000000000 -0400
+++ gnome-terminal/src/terminal-widget-zvt.c	2002-10-21 19:38:19.000000000 -0400
@@ -634,6 +634,7 @@
 terminal_widget_set_colors (GtkWidget            *widget,
                             const GdkColor       *fg,
                             const GdkColor       *bg,
+                            const GdkColor       *cursor,
                             const GdkColor       *palette_entries)
 {
   gushort red[18], green[18], blue[18];
diff -urN gnome-terminal.settings/src/terminal-widget.h gnome-terminal/src/terminal-widget.h
--- gnome-terminal.settings/src/terminal-widget.h	2002-07-14 17:20:54.000000000 -0400
+++ gnome-terminal/src/terminal-widget.h	2002-10-21 19:38:19.000000000 -0400
@@ -91,6 +91,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);
