 +        emit_terminal_screen_changed(1);        
  }
  
- void
+ /* Switch to normal screen and restore cursor (in this order). */

diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index d468f669..33488e21 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -104,8 +104,10 @@ struct _VteTerminalClass {
 
 	void (*bell)(VteTerminal* terminal);
 
+        void (*terminal_screen_changed)(VteTerminal* terminal);        
+
         /* Padding for future expansion. */
-        gpointer padding[16];

         VteTerminalClassPrivate *priv;
 };
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 516e0425..33697c01 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -739,6 +739,8 @@ vte_terminal_class_init(VteTerminalClass *klass)
