Index: src/terminal-screen.c
===================================================================
--- src/terminal-screen.c	(revision 3346)
+++ src/terminal-screen.c	(working copy)
@@ -270,6 +270,7 @@
   TerminalScreen *screen = TERMINAL_SCREEN (widget);
   TerminalScreenPrivate *priv = screen->priv;
   TerminalBackgroundType bg_type;
+  guint columns, rows;
 
   GTK_WIDGET_CLASS (terminal_screen_parent_class)->realize (widget);
 
@@ -282,6 +283,9 @@
                                            !terminal_window_uses_argb_visual (priv->window));
 
   /* FIXME: why do this on realize? */
+  columns = terminal_profile_get_property_int (priv->profile, TERMINAL_PROFILE_SIZE_COLUMNS);
+  rows = terminal_profile_get_property_int (priv->profile, TERMINAL_PROFILE_SIZE_ROWS);
+  vte_terminal_set_size (VTE_TERMINAL (screen), columns, rows);
   terminal_window_set_size (priv->window, screen, TRUE);
 }
 
Index: src/profile-preferences.glade
===================================================================
--- src/profile-preferences.glade	(revision 3346)
+++ src/profile-preferences.glade	(working copy)
@@ -401,6 +403,122 @@
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox141">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">12</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="size-columns-spinbutton-label">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">_Columns:</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">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="mnemonic_widget">size-columns-spinbutton</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSpinButton" id="size-columns-spinbutton">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="climb_rate">1</property>
+		      <property name="digits">0</property>
+		      <property name="numeric">True</property>
+		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+		      <property name="snap_to_ticks">False</property>
+		      <property name="wrap">False</property>
+		      <property name="adjustment">80 0 65535 1 10 10</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox142">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">12</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="size-rows-spinbutton-label">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">_Rows:</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">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="mnemonic_widget">word-chars-entry</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSpinButton" id="size-rows-spinbutton">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="climb_rate">1</property>
+		      <property name="digits">0</property>
+		      <property name="numeric">True</property>
+		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+		      <property name="snap_to_ticks">False</property>
+		      <property name="wrap">False</property>
+		      <property name="adjustment">24 0 65535 1 10 10</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="tab_expand">False</property>
Index: src/terminal-profile.c
===================================================================
--- src/terminal-profile.c	(revision 3346)
+++ src/terminal-profile.c	(working copy)
@@ -80,6 +80,8 @@
   PROP_USE_THEME_COLORS,
   PROP_VISIBLE_NAME,
   PROP_WORD_CHARS,
+  PROP_SIZE_COLUMNS,
+  PROP_SIZE_ROWS,
   LAST_PROP
 };
 
@@ -114,6 +116,8 @@
 #define KEY_USE_THEME_COLORS "use_theme_colors"
 #define KEY_VISIBLE_NAME "visible_name"
 #define KEY_WORD_CHARS "word_chars"
+#define KEY_SIZE_COLUMNS "size_columns"
+#define KEY_SIZE_ROWS "size_rows"
 
 /* Keep these in sync with the GConf schema! */
 #define DEFAULT_ALLOW_BOLD            (TRUE)
@@ -149,6 +153,8 @@
 #define DEFAULT_USE_THEME_COLORS      (TRUE)
 #define DEFAULT_VISIBLE_NAME          (N_("Unnamed"))
 #define DEFAULT_WORD_CHARS            ("-A-Za-z0-9,./?%&#:_")
+#define DEFAULT_SIZE_COLUMNS          (80)
+#define DEFAULT_SIZE_ROWS             (24)
 
 struct _TerminalProfilePrivate
 {
@@ -1325,6 +1331,10 @@
   TERMINAL_PROFILE_PROPERTY_STRING (WORD_CHARS, DEFAULT_WORD_CHARS, KEY_WORD_CHARS);
 
   TERMINAL_PROFILE_PROPERTY_VALUE_ARRAY_BOXED (PALETTE, "palette-color", GDK_TYPE_COLOR, KEY_PALETTE);
+  
+  TERMINAL_PROFILE_PROPERTY_INT (SIZE_COLUMNS, 4, G_MAXINT, DEFAULT_SIZE_COLUMNS, KEY_SIZE_COLUMNS);
+  TERMINAL_PROFILE_PROPERTY_INT (SIZE_ROWS, 3, G_MAXINT, DEFAULT_SIZE_ROWS, KEY_SIZE_ROWS);
+
 }
 
 /* Semi-Public API */
Index: src/terminal-profile.h
===================================================================
--- src/terminal-profile.h	(revision 3346)
+++ src/terminal-profile.h	(working copy)
@@ -98,6 +98,8 @@
 #define TERMINAL_PROFILE_USE_THEME_COLORS       "use-theme-colors"
 #define TERMINAL_PROFILE_VISIBLE_NAME           "visible-name"
 #define TERMINAL_PROFILE_WORD_CHARS             "word-chards"
+#define TERMINAL_PROFILE_SIZE_COLUMNS           "size-columns"
+#define TERMINAL_PROFILE_SIZE_ROWS              "size-rows"
 
 /* TerminalProfile object */
 
Index: src/gnome-terminal.schemas.in
===================================================================
--- src/gnome-terminal.schemas.in	(revision 3346)
+++ src/gnome-terminal.schemas.in	(working copy)
@@ -627,6 +627,32 @@
          </long>
       </locale>
     </schema>
+    
+    <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/size_columns</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/size_columns</applyto>
+      <owner>gnome-terminal</owner>
+      <type>int</type>
+      <default>80</default>
+      <locale name="C">
+         <short>Number of columns</short>
+         <long>The number of columns a terminal will have when opened in a new window.
+         </long>
+      </locale>
+    </schema>
+    
+    <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/size_rows</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/size_rows</applyto>
+      <owner>gnome-terminal</owner>
+      <type>int</type>
+      <default>24</default>
+      <locale name="C">
+         <short>Number of rows</short>
+         <long>The number of rows a terminal will have when opened in a new window.
+         </long>
+      </locale>
+    </schema>
 
     <!-- Keybindings -->
 
Index: src/profile-editor.c
===================================================================
--- src/profile-editor.c	(revision 3346)
+++ src/profile-editor.c	(working copy)
@@ -823,6 +823,8 @@
   CONNECT ("use-custom-command-checkbutton", TERMINAL_PROFILE_USE_CUSTOM_COMMAND);
   CONNECT ("use-theme-colors-checkbutton", TERMINAL_PROFILE_USE_THEME_COLORS);
   CONNECT ("word-chars-entry", TERMINAL_PROFILE_WORD_CHARS);
+  CONNECT ("size-columns-spinbutton", TERMINAL_PROFILE_SIZE_COLUMNS);
+  CONNECT ("size-rows-spinbutton", TERMINAL_PROFILE_SIZE_ROWS);
   CONNECT_WITH_FLAGS ("bell-checkbutton", TERMINAL_PROFILE_SILENT_BELL, FLAG_INVERT_BOOL);
   CONNECT_WITH_FLAGS ("scrollback-lines-spinbutton", TERMINAL_PROFILE_SCROLLBACK_LINES, 0);
 
