--- src/terminal-screen.c	2008-03-28 00:16:33.368816517 +0100
+++ src/terminal-screen.c.new	2008-03-28 00:16:20.598337044 +0100
@@ -108,6 +108,8 @@
 
 static void terminal_screen_widget_title_changed      (GtkWidget      *term,
                                                        TerminalScreen *screen);
+ static void terminal_screen_widget_contents_changed   (GtkWidget      *term,
+                                                       TerminalScreen *screen);
 static void terminal_screen_widget_icon_title_changed (GtkWidget      *term,
                                                        TerminalScreen *screen);
 
@@ -371,6 +373,10 @@
                                          G_CALLBACK (terminal_screen_widget_title_changed),
                                          screen);
 
+  terminal_widget_connect_contents_changed (screen->priv->term,
+                                         G_CALLBACK (terminal_screen_widget_contents_changed),
+                                         screen);
+
   terminal_widget_connect_icon_title_changed (priv->term,
                                               G_CALLBACK (terminal_screen_widget_icon_title_changed),
                                               screen);
@@ -1727,6 +1733,16 @@
 }
 
 static void
+terminal_screen_widget_contents_changed (GtkWidget      *widget,
+                                      TerminalScreen *screen)
+{
+// make window blink
+  GtkWindow *w = GTK_WINDOW( terminal_screen_get_window (screen) );
+  if(!w->is_active)
+	  gtk_window_set_urgency_hint(w,TRUE);
+}
+
+static void
 terminal_screen_widget_icon_title_changed (GtkWidget      *widget,
                                            TerminalScreen *screen)
 {
--- src/terminal-widget.h	2008-03-28 00:17:32.164181279 +0100
+++ src/terminal-widget.h.new	2008-03-28 00:17:40.411545242 +0100
@@ -113,6 +113,9 @@
 void terminal_widget_connect_title_changed         (GtkWidget *widget,
                                                     GCallback  callback,
                                                     void      *data);
+ void terminal_widget_connect_contents_changed      (GtkWidget *widget,
+                                                    GCallback  callback,
+                                                    void      *data);
 void terminal_widget_disconnect_title_changed      (GtkWidget *widget,
                                                     GCallback  callback,
                                                     void      *data);
--- src/terminal-widget-vte.c	2008-03-28 00:18:59.009907331 +0100
+++ src/terminal-widget-vte.c.new	2008-03-28 00:19:07.473218625 +0100
@@ -457,6 +457,15 @@
 }
 
 void
+terminal_widget_connect_contents_changed (GtkWidget *widget,
+				       GCallback  callback,
+				       void      *data)
+{
+  g_signal_connect (widget, "contents_changed",
+		    G_CALLBACK (callback), data);
+}
+
+void
 terminal_widget_disconnect_title_changed (GtkWidget *widget,
 					  GCallback  callback,
 					  void      *data)
--- src/terminal-window.c	2008-03-28 00:14:28.724438351 +0100
+++ src/terminal-window.c.new	2008-03-28 00:22:08.920806174 +0100
@@ -801,6 +801,12 @@
   g_signal_handlers_disconnect_by_func (window, terminal_window_realized_callback, NULL);
 }
 
+void terminal_window_focus_in_event_callback (GtkWidget *window,
+                                        gpointer   user_data)
+{
+  gtk_window_set_urgency_hint(GTK_WINDOW( TERMINAL_WINDOW( window ) ), FALSE);
+}
+
 /* Terminal screen popup menu handling */
 
 static void
@@ -1243,6 +1249,9 @@
   g_signal_connect (G_OBJECT (window), "realize",
                     G_CALLBACK (terminal_window_realized_callback),
                     NULL);
+  g_signal_connect (G_OBJECT (window), "focus-in-event", 
+                    G_CALLBACK (terminal_window_focus_in_event_callback),
+                    NULL);
 
   gtk_window_set_title (GTK_WINDOW (window), _("Terminal"));
 
