diff -ur gnome-terminal-1.9.6/src/terminal-screen.c gnome-terminal-1.9.6.show-screen-number/src/terminal-screen.c
--- gnome-terminal-1.9.6/src/terminal-screen.c	Sun May 12 20:04:52 2002
+++ gnome-terminal-1.9.6.show-screen-number/src/terminal-screen.c	Tue May 28 06:38:06 2002
@@ -47,6 +47,7 @@
   guint profile_changed_id;
   guint profile_forgotten_id;
   int id;
+  int tab_order;
   GtkWidget *popup_menu;
   char *raw_title;
   char *cooked_title;
@@ -94,8 +95,6 @@
 
 static void reread_profile (TerminalScreen *screen);
 
-static void rebuild_title  (TerminalScreen *screen);
-
 static void queue_recheck_working_dir (TerminalScreen *screen);
 
 static gboolean xfont_is_monospace                   (const char *fontname);
@@ -299,6 +298,19 @@
   return screen->priv->id;
 }
 
+int
+terminal_screen_get_tab_order (TerminalScreen *screen)
+{
+  return screen->priv->tab_order;
+}
+
+void
+terminal_screen_set_tab_order  (TerminalScreen *screen,
+				int             tab_order)
+{
+  screen->priv->tab_order = tab_order;
+}
+
 TerminalWindow*
 terminal_screen_get_window (TerminalScreen *screen)
 {
@@ -316,7 +328,7 @@
 terminal_screen_get_title (TerminalScreen *screen)
 {
   if (screen->priv->cooked_title == NULL)
-    rebuild_title (screen);
+    terminal_screen_rebuild_title (screen);
 
   /* cooked_title may still be NULL */
   if (screen->priv->cooked_title)
@@ -339,7 +351,7 @@
 
   term = screen->priv->term;
 
-  rebuild_title (screen);
+  terminal_screen_rebuild_title (screen);
   
   if (screen->priv->window)
     {
@@ -404,10 +416,12 @@
                                       terminal_profile_get_delete_binding (profile));
 }
 
-static void
-rebuild_title  (TerminalScreen *screen)
+void
+terminal_screen_rebuild_title  (TerminalScreen *screen)
 {
+  TerminalWindow *window;
   TerminalTitleMode mode;
+  gchar *tab_order_str;
 
   if (screen->priv->profile)
     mode = terminal_profile_get_title_mode (screen->priv->profile);
@@ -416,11 +430,18 @@
 
   g_free (screen->priv->cooked_title);
   
+  window = screen->priv->window;
+  if (window!=NULL && (g_list_length (terminal_window_list_screens (window)) > 1))
+     tab_order_str = g_strdup_printf("[%d]",screen->priv->tab_order);
+  else
+     tab_order_str = g_strdup("   ");	  
+  
   switch (mode)
     {
     case TERMINAL_TITLE_AFTER:
       screen->priv->cooked_title =
-        g_strconcat (terminal_profile_get_title (screen->priv->profile),
+        g_strconcat (tab_order_str,
+		     terminal_profile_get_title (screen->priv->profile),
                      (screen->priv->raw_title && *(screen->priv->raw_title)) ?
                      " - " : "",
                      screen->priv->raw_title,
@@ -428,7 +449,7 @@
       break;
     case TERMINAL_TITLE_BEFORE:
       screen->priv->cooked_title =
-        g_strconcat (screen->priv->raw_title ?
+        g_strconcat (tab_order_str, screen->priv->raw_title ?
                      screen->priv->raw_title : "",
                      (screen->priv->raw_title && *(screen->priv->raw_title)) ?
                      " - " : "",
@@ -437,18 +458,22 @@
       break;
     case TERMINAL_TITLE_REPLACE:
       if (screen->priv->raw_title)
-        screen->priv->cooked_title = g_strdup (screen->priv->raw_title);
+        screen->priv->cooked_title = g_strconcat (tab_order_str, screen->priv->raw_title, NULL);
       else
-        screen->priv->cooked_title = g_strdup (terminal_profile_get_title (screen->priv->profile));
+        screen->priv->cooked_title = g_strconcat (tab_order_str, 
+						  terminal_profile_get_title (screen->priv->profile),
+						  NULL);
       break;
     case TERMINAL_TITLE_IGNORE:
-      screen->priv->cooked_title = g_strdup (terminal_profile_get_title (screen->priv->profile));
+      screen->priv->cooked_title = g_strconcat (tab_order_str,
+		      				terminal_profile_get_title (screen->priv->profile));
       break;
     default:
       g_assert_not_reached ();
       break;
     }
       
+  g_free(tab_order_str);
   g_signal_emit (G_OBJECT (screen), signals[TITLE_CHANGED], 0);
 }
 
@@ -1393,7 +1418,7 @@
 
   g_free (screen->priv->raw_title);
   screen->priv->raw_title = g_strdup (title);
-  rebuild_title (screen);
+  terminal_screen_rebuild_title (screen);
 
   if (screen->priv->title_entry &&
       screen->priv->raw_title)
diff -ur gnome-terminal-1.9.6/src/terminal-screen.h gnome-terminal-1.9.6.show-screen-number/src/terminal-screen.h
--- gnome-terminal-1.9.6/src/terminal-screen.h	Mon Apr 15 05:51:20 2002
+++ gnome-terminal-1.9.6.show-screen-number/src/terminal-screen.h	Tue May 28 03:54:36 2002
@@ -80,10 +80,17 @@
 
 int terminal_screen_get_id (TerminalScreen *screen);
 
+int terminal_screen_get_tab_order (TerminalScreen *screen);
+
+void terminal_screen_set_tab_order (TerminalScreen *screen,
+				    int             tab_order);
+
 void terminal_screen_launch_child (TerminalScreen *screen);
 
 const char* terminal_screen_get_title (TerminalScreen *screen);
 
+void terminal_screen_rebuild_title  (TerminalScreen *screen);
+
 void terminal_screen_close (TerminalScreen *screen);
 
 gboolean terminal_screen_get_text_selected (TerminalScreen *screen);
diff -ur gnome-terminal-1.9.6/src/terminal-window.c gnome-terminal-1.9.6.show-screen-number/src/terminal-window.c
--- gnome-terminal-1.9.6/src/terminal-window.c	Tue May  7 14:33:01 2002
+++ gnome-terminal-1.9.6.show-screen-number/src/terminal-window.c	Tue May 28 06:36:48 2002
@@ -819,7 +819,7 @@
   
   if (screen == window->priv->active_term)
     gtk_window_set_title (GTK_WINDOW (window),
-                          terminal_screen_get_title (screen));
+		           terminal_screen_get_title (screen));
 
   label = screen_get_label (screen);
   eel_ellipsizing_label_set_text (EEL_ELLIPSIZING_LABEL (label),
@@ -882,7 +882,9 @@
   GtkWidget *term;
   GtkWidget *hbox;
   GtkWidget *scrollbar;
-  GtkWidget *label;  
+  GtkWidget *label;
+  int tab_order;  
+  gchar *tab_order_str;
   
   old = terminal_screen_get_window (screen);
 
@@ -904,7 +906,16 @@
 
   hbox = gtk_hbox_new (FALSE, 0);
   scrollbar = gtk_vscrollbar_new (NULL);
-  label = eel_ellipsizing_label_new (terminal_screen_get_title (screen));
+
+  tab_order = 1+g_list_index(window->priv->terms,screen);
+  terminal_screen_set_tab_order (screen, tab_order);
+  if (tab_order > 1)
+     tab_order_str = g_strdup_printf("[%d]",tab_order);
+  else
+     tab_order_str = g_strdup("   ");
+  
+  label = eel_ellipsizing_label_new (g_strconcat (tab_order_str,terminal_screen_get_title (screen),NULL));
+  g_free(tab_order_str);
   gtk_widget_show (label);
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
   
@@ -938,6 +949,12 @@
   gtk_widget_show_all (hbox);
   terminal_window_update_scrollbar (window, screen);
   
+  /* If this is the second screen, we need to rebuild title
+   * in the first one to show number. */
+  if (tab_order == 2) 
+       terminal_screen_rebuild_title (g_list_nth_data (window->priv->terms,0));
+		  
+  
   update_notebook (window);
   
   gtk_notebook_append_page (GTK_NOTEBOOK (window->priv->notebook),
@@ -987,14 +1004,24 @@
 terminal_window_remove_screen (TerminalWindow *window,
                                TerminalScreen *screen)
 {
+  TerminalScreen *rebuild_screen;
   int old_grid_width;
   int old_grid_height;
+  int i;
   
   g_return_if_fail (terminal_screen_get_window (screen) == window);
 
   old_grid_width = -1;
   old_grid_height = -1;
   
+  /* Rebuild screen titles after this one because order has changed.*/
+  for (i=terminal_screen_get_tab_order(screen);i<=g_list_length (window->priv->terms);i++) {
+	rebuild_screen = g_list_nth_data (window->priv->terms,i-1);
+	terminal_screen_set_tab_order (rebuild_screen,i-1);
+	terminal_screen_rebuild_title (rebuild_screen);
+  }
+ 
+  
   if (window->priv->active_term == screen)
     {
       GtkWidget *old_active_widget;
@@ -1004,8 +1031,14 @@
       old_active_widget = terminal_screen_get_widget (screen);
       terminal_widget_get_size (old_active_widget, &old_grid_width, &old_grid_height);
     }
-      
+  
   window->priv->terms = g_list_remove (window->priv->terms, screen);
+  
+  /* If it lasts only one, rebuild screen title to dont't show number */
+  if (g_list_length (window->priv->terms) == 1) {
+	rebuild_screen = g_list_nth_data (window->priv->terms,0);
+	terminal_screen_rebuild_title (rebuild_screen);
+  }
 
   g_signal_handlers_disconnect_by_func (G_OBJECT (screen),
                                         G_CALLBACK (profile_set_callback),
@@ -1030,8 +1063,9 @@
   screen_set_menuitem (screen, NULL);
   
   g_object_unref (G_OBJECT (screen));
-  
+ 
   update_notebook (window);
+  
 
   /* Put ourselves back in a sane state */
   /* FIXME this block never gets called because removing a notebook page
