diff -urp gnome-terminal-20081118.orig/src/gnome-terminal.schemas.in gnome-terminal-20081118/src/gnome-terminal.schemas.in
--- gnome-terminal-20081118.orig/src/gnome-terminal.schemas.in	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/gnome-terminal.schemas.in	2008-11-18 13:07:56.000000000 -0800
@@ -326,6 +326,21 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/alternate_screen_scroll</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/alternate_screen_scroll</applyto>
+      <owner>gnome-terminal</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+         <short>Whether to use keystrokes for alternate screen scrolling</short>
+         <long>
+          If true, use Up/Down keystrokes for scrolling when using alternate
+          screen or when scrolling is restricted.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/gnome-terminal/profiles/Default/exit_action</key>
       <applyto>/apps/gnome-terminal/profiles/Default/exit_action</applyto>
       <owner>gnome-terminal</owner>
diff -urp gnome-terminal-20081118.orig/src/profile-editor.c gnome-terminal-20081118/src/profile-editor.c
--- gnome-terminal-20081118.orig/src/profile-editor.c	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/profile-editor.c	2008-11-18 13:07:56.000000000 -0800
@@ -241,6 +241,10 @@ profile_notify_sensitivity_cb (TerminalP
     SET_SENSITIVE ("scroll-on-output-checkbutton",
                    !terminal_profile_property_locked (profile, TERMINAL_PROFILE_SCROLL_ON_OUTPUT));
 
+  if (!prop_name || prop_name == I_(TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL))
+    SET_SENSITIVE ("alternate-screen-scroll-checkbutton",
+                   !terminal_profile_property_locked (profile, TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL));
+
   if (!prop_name || prop_name == I_(TERMINAL_PROFILE_EXIT_ACTION))
     SET_SENSITIVE ("exit-action-combobox",
                    !terminal_profile_property_locked (profile, TERMINAL_PROFILE_EXIT_ACTION));
@@ -813,6 +817,7 @@ terminal_profile_edit (TerminalProfile *
   CONNECT ("scrollbar-position-combobox", TERMINAL_PROFILE_SCROLLBAR_POSITION);
   CONNECT ("scroll-on-keystroke-checkbutton", TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE);
   CONNECT ("scroll-on-output-checkbutton", TERMINAL_PROFILE_SCROLL_ON_OUTPUT);
+  CONNECT ("alternate-screen-scroll-checkbutton", TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL);
   CONNECT ("show-menubar-checkbutton", TERMINAL_PROFILE_DEFAULT_SHOW_MENUBAR);
   CONNECT ("solid-radiobutton", TERMINAL_PROFILE_BACKGROUND_TYPE);
   CONNECT ("system-font-checkbutton", TERMINAL_PROFILE_USE_SYSTEM_FONT);
diff -urp gnome-terminal-20081118.orig/src/profile-preferences.glade gnome-terminal-20081118/src/profile-preferences.glade
--- gnome-terminal-20081118.orig/src/profile-preferences.glade	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/profile-preferences.glade	2008-11-18 13:09:07.000000000 -0800
@@ -2021,7 +2021,7 @@ Custom</property>
 	    <widget class="GtkTable" id="table27">
 	      <property name="border_width">12</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">6</property>
@@ -2070,6 +2070,41 @@ Custom</property>
 	      </child>
 
 	      <child>
+		<widget class="GtkAlignment" id="alignment12">
+		  <property name="visible">True</property>
+		  <property name="xalign">1.49012002737e-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="GtkCheckButton" id="alternate-screen-scroll-checkbutton">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Use keystrokes to scroll on _alternate screen</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>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">4</property>
+		  <property name="bottom_attach">5</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkHBox" id="hbox139">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
diff -urp gnome-terminal-20081118.orig/src/terminal-profile.c gnome-terminal-20081118/src/terminal-profile.c
--- gnome-terminal-20081118.orig/src/terminal-profile.c	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/terminal-profile.c	2008-11-18 13:07:56.000000000 -0800
@@ -76,6 +76,7 @@ enum
   PROP_SCROLLBAR_POSITION,
   PROP_SCROLL_ON_KEYSTROKE,
   PROP_SCROLL_ON_OUTPUT,
+  PROP_ALTERNATE_SCREEN_SCROLL,
   PROP_SILENT_BELL,
   PROP_TITLE,
   PROP_TITLE_MODE,
@@ -111,6 +112,7 @@ enum
 #define KEY_SCROLLBAR_POSITION "scrollbar_position"
 #define KEY_SCROLL_ON_KEYSTROKE "scroll_on_keystroke"
 #define KEY_SCROLL_ON_OUTPUT "scroll_on_output"
+#define KEY_ALTERNATE_SCREEN_SCROLL "alternate_screen_scroll"
 #define KEY_SILENT_BELL "silent_bell"
 #define KEY_TITLE_MODE "title_mode"
 #define KEY_TITLE "title"
@@ -147,6 +149,7 @@ enum
 #define DEFAULT_SCROLLBAR_POSITION    (TERMINAL_SCROLLBAR_RIGHT)
 #define DEFAULT_SCROLL_ON_KEYSTROKE   (TRUE)
 #define DEFAULT_SCROLL_ON_OUTPUT      (FALSE)
+#define DEFAULT_ALTERNATE_SCREEN_SCROLL (TRUE)
 #define DEFAULT_SILENT_BELL           (FALSE)
 #define DEFAULT_TITLE_MODE            (TERMINAL_TITLE_REPLACE)
 #define DEFAULT_TITLE                 (N_("Terminal"))
@@ -1267,6 +1270,7 @@ terminal_profile_class_init (TerminalPro
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND);
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_KEYSTROKE, DEFAULT_SCROLL_ON_KEYSTROKE, KEY_SCROLL_ON_KEYSTROKE);
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_ON_OUTPUT, DEFAULT_SCROLL_ON_OUTPUT, KEY_SCROLL_ON_OUTPUT);
+  TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALTERNATE_SCREEN_SCROLL, DEFAULT_ALTERNATE_SCREEN_SCROLL, KEY_ALTERNATE_SCREEN_SCROLL);
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (SILENT_BELL, DEFAULT_SILENT_BELL, KEY_SILENT_BELL);
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (UPDATE_RECORDS, DEFAULT_UPDATE_RECORDS, KEY_UPDATE_RECORDS);
   TERMINAL_PROFILE_PROPERTY_BOOLEAN (USE_CUSTOM_COMMAND, DEFAULT_USE_CUSTOM_COMMAND, KEY_USE_CUSTOM_COMMAND);
diff -urp gnome-terminal-20081118.orig/src/terminal-profile.h gnome-terminal-20081118/src/terminal-profile.h
--- gnome-terminal-20081118.orig/src/terminal-profile.h	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/terminal-profile.h	2008-11-18 13:07:56.000000000 -0800
@@ -89,6 +89,7 @@ typedef enum
 #define TERMINAL_PROFILE_SCROLLBAR_POSITION     "scrollbar-position"
 #define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE    "scroll-on-keystroke"
 #define TERMINAL_PROFILE_SCROLL_ON_OUTPUT       "scroll-on-output"
+#define TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL "alternate-screen-scroll"
 #define TERMINAL_PROFILE_SILENT_BELL            "silent-bell"
 #define TERMINAL_PROFILE_TITLE_MODE             "title-mode"
 #define TERMINAL_PROFILE_TITLE                  "title"
diff -urp gnome-terminal-20081118.orig/src/terminal-screen.c gnome-terminal-20081118/src/terminal-screen.c
--- gnome-terminal-20081118.orig/src/terminal-screen.c	2008-11-18 13:08:27.000000000 -0800
+++ gnome-terminal-20081118/src/terminal-screen.c	2008-11-18 13:07:56.000000000 -0800
@@ -898,6 +898,9 @@ terminal_screen_profile_notify_cb (Termi
   if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLL_ON_OUTPUT))
     vte_terminal_set_scroll_on_output (vte_terminal,
                                        terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_SCROLL_ON_OUTPUT));
+  if (!prop_name || prop_name == I_(TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL))
+    vte_terminal_set_alternate_screen_scroll (vte_terminal,
+                                       terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_ALTERNATE_SCREEN_SCROLL));
   if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLLBACK_LINES))
     vte_terminal_set_scrollback_lines (vte_terminal,
                                        terminal_profile_get_property_int (profile, TERMINAL_PROFILE_SCROLLBACK_LINES));
