Index: libsylph/enums.h
===================================================================
--- libsylph/enums.h	(revision 2362)
+++ libsylph/enums.h	(working copy)
@@ -49,6 +49,7 @@
 	S_COL_SIZE,
 	S_COL_NUMBER,
 	S_COL_TO,
+	S_COL_DUMMY,
 
 	S_COL_MSG_INFO,
 
Index: src/summaryview.c
===================================================================
--- src/summaryview.c	(revision 2362)
+++ src/summaryview.c	(working copy)
@@ -391,7 +391,8 @@
 	SORT_BY_DATE,
 	SORT_BY_SIZE,
 	SORT_BY_NUMBER,
-	SORT_BY_TO
+	SORT_BY_TO,
+	SORT_BY_NONE
 };
 
 enum
@@ -2140,13 +2141,13 @@
 					     (GtkSortType)sort_type);
 
 	if (prev_col_type != -1 && col_type != prev_col_type &&
-	    prev_col_type < N_SUMMARY_VISIBLE_COLS) {
+	    prev_col_type < N_SUMMARY_VISIBLE_COLS - 1) {
 		column = summaryview->columns[prev_col_type];
 		column->sort_column_id = -1;
 		gtk_tree_view_column_set_sort_indicator(column, FALSE);
 	}
 	if (col_type != S_COL_MARK && col_type != S_COL_UNREAD &&
-	    col_type != S_COL_MIME && col_type < N_SUMMARY_VISIBLE_COLS) {
+	    col_type != S_COL_MIME && col_type < N_SUMMARY_VISIBLE_COLS - 1) {
 		column = summaryview->columns[col_type];
 		column->sort_column_id = col_type;
 		gtk_tree_view_column_set_sort_indicator(column, TRUE);
@@ -2306,6 +2307,7 @@
 			   S_COL_SIZE, to_human_readable(msginfo->size),
 			   S_COL_NUMBER, msginfo->msgnum,
 			   S_COL_TO, to_s ? to_s : "",
+			   S_COL_DUMMY, "",
 
 			   S_COL_MSG_INFO, msginfo,
 
@@ -5049,6 +5051,7 @@
 				   G_TYPE_STRING,
 				   G_TYPE_UINT,
 				   G_TYPE_STRING,
+				   G_TYPE_STRING,
 
 				   G_TYPE_POINTER,
 
@@ -5073,6 +5076,7 @@
 	SET_SORT(S_COL_TO, summary_cmp_by_to);
 	SET_SORT(S_COL_LABEL, summary_cmp_by_label);
 	SET_SORT(S_COL_TDATE, summary_cmp_by_thread_date);
+	SET_SORT(S_COL_DUMMY, summary_cmp_by_num /* XXX */);
 
 #undef SET_SORT
 
@@ -5111,8 +5115,10 @@
 	gtk_tree_view_column_set_alignment(column, align);		\
 	gtk_tree_view_column_set_sizing					\
 		(column, GTK_TREE_VIEW_COLUMN_FIXED);			\
-	gtk_tree_view_column_set_fixed_width(column, width);		\
-	gtk_tree_view_column_set_min_width(column, 8);			\
+	if (width) {							\
+		gtk_tree_view_column_set_fixed_width(column, width);	\
+		gtk_tree_view_column_set_min_width(column, 8);		\
+	}								\
 	gtk_tree_view_column_set_clickable(column, TRUE);		\
 	/* gtk_tree_view_column_set_sort_column_id(column, col); */	\
 	gtk_tree_view_column_set_reorderable(column, TRUE);		\
@@ -5153,6 +5159,7 @@
 		   prefs_common.summary_col_size[S_COL_NUMBER], 1.0);
 	ADD_COLUMN(_("To"), text, S_COL_TO, TRUE,
 		   prefs_common.summary_col_size[S_COL_TO], 0.0);
+	ADD_COLUMN("", text, S_COL_DUMMY, FALSE, 0, 0);
 
 #undef ADD_COLUMN
 
@@ -5822,7 +5829,7 @@
 {
 	SummaryColumnType type;
 
-	for (type = 0; type < N_SUMMARY_VISIBLE_COLS; type++) {
+	for (type = 0; type < N_SUMMARY_VISIBLE_COLS - 1; type++) {
 		if (summaryview->columns[type]->button == widget) {
 			prefs_common.summary_col_size[type] = allocation->width;
 			break;
@@ -5875,7 +5882,7 @@
 {
 	SummaryColumnType type;
 
-	for (type = 0; type < N_SUMMARY_VISIBLE_COLS; type++) {
+	for (type = 0; type < N_SUMMARY_VISIBLE_COLS - 1; type++) {
 		if (summaryview->columns[type]->button == button) {
 			summary_sort_by_column_click(summaryview, type);
 			break;
Index: src/prefs_summary_column.c
===================================================================
--- src/prefs_summary_column.c	(revision 2362)
+++ src/prefs_summary_column.c	(working copy)
@@ -71,7 +71,8 @@
 	N_("Date"),		/* S_COL_DATE    */
 	N_("Size"),		/* S_COL_SIZE    */
 	N_("Number"),		/* S_COL_NUMBER  */
-	N_("To")		/* S_COL_TO      */
+	N_("To"),		/* S_COL_TO      */
+	"",			/* S_COL_DUMMY   */
 };
 
 static SummaryColumnState default_state[N_SUMMARY_VISIBLE_COLS] = {
@@ -83,7 +84,8 @@
 	{ S_COL_DATE   , TRUE  },
 	{ S_COL_SIZE   , TRUE  },
 	{ S_COL_NUMBER , FALSE },
-	{ S_COL_TO     , FALSE }
+	{ S_COL_TO     , FALSE },
+	{ S_COL_DUMMY  , TRUE  }
 };
 
 static SummaryColumnState default_sent_state[N_SUMMARY_VISIBLE_COLS] = {
@@ -95,7 +97,8 @@
 	{ S_COL_DATE   , TRUE  },
 	{ S_COL_SIZE   , TRUE  },
 	{ S_COL_NUMBER , FALSE },
-	{ S_COL_FROM   , FALSE }
+	{ S_COL_FROM   , FALSE },
+	{ S_COL_DUMMY  , TRUE  }
 };
 
 static void prefs_summary_column_create	(void);
@@ -375,7 +378,7 @@
 	for (pos = 0; pos < N_SUMMARY_VISIBLE_COLS; pos++)
 		state[pos].type = -1;
 
-	for (type = 0; type < N_SUMMARY_VISIBLE_COLS; type++) {
+	for (type = 0; type < N_SUMMARY_VISIBLE_COLS - 1; type++) {
 		pos = col_pos[type];
 		if (pos < 0 || pos >= N_SUMMARY_VISIBLE_COLS ||
 		    state[pos].type != -1) {
@@ -388,6 +391,9 @@
 		state[pos].visible = col_visible[type];
 	}
 
+	state[S_COL_DUMMY].type = S_COL_DUMMY;
+	state[S_COL_DUMMY].visible = TRUE;
+
 	return state;
 }
 
@@ -407,11 +413,14 @@
 		col_pos = prefs_common.summary_col_pos;
 	}
 
-	for (pos = 0; pos < N_SUMMARY_VISIBLE_COLS; pos++) {
+	for (pos = 0; pos < N_SUMMARY_VISIBLE_COLS - 1; pos++) {
 		type = state[pos].type;
 		col_visible[type] = state[pos].visible;
 		col_pos[type] = pos;
 	}
+
+	col_visible[S_COL_DUMMY] = TRUE;
+	col_pos[S_COL_DUMMY] = S_COL_DUMMY;
 }
 
 static void prefs_summary_column_set_dialog(SummaryColumnState *state)
@@ -429,7 +438,7 @@
 		state = prefs_summary_column_get_config
 			(summary_col.sent_folder);
 
-	for (pos = 0; pos < N_SUMMARY_VISIBLE_COLS; pos++) {
+	for (pos = 0; pos < N_SUMMARY_VISIBLE_COLS - 1; pos++) {
 		gint row;
 		type = state[pos].type;
 		name = gettext(col_name[type]);
@@ -455,7 +464,7 @@
 	gint row, pos = 0;
 
 	g_return_if_fail(stock_clist->rows + shown_clist->rows ==
-			 N_SUMMARY_VISIBLE_COLS);
+			 N_SUMMARY_VISIBLE_COLS - 1);
 
 	for (row = 0; row < stock_clist->rows; row++) {
 		type = GPOINTER_TO_INT
@@ -472,6 +481,9 @@
 		state[pos + row].visible = TRUE;
 	}
 
+	state[S_COL_DUMMY].type = S_COL_DUMMY;
+	state[S_COL_DUMMY].visible = TRUE;
+
 	prefs_summary_column_set_config(state, summary_col.sent_folder);
 	main_window_set_summary_column();
 }
Index: src/mainwindow.c
===================================================================
--- src/mainwindow.c	(revision 2362)
+++ src/mainwindow.c	(working copy)
@@ -930,6 +930,7 @@
 	GtkWidget *ac_menu;
 	GtkWidget *menuitem;
 	gint i;
+	gboolean real_vision;
 
 	static GdkGeometry geometry;
 
@@ -1114,8 +1115,8 @@
 			g_warning(_("MainWindow: color allocation %d failed\n"), i);
 	}
 
-	messageview->visible = prefs_common.msgview_visible;
-
+	real_vision = prefs_common.msgview_visible;
+	messageview->visible = TRUE; /* needs this space anyway */
 	main_window_set_widgets(mainwin, prefs_common.layout_type, type);
 
 	if (prefs_common.mainwin_maximized)
@@ -1169,6 +1170,8 @@
 
 	/* show main window */
 	gtk_widget_show(mainwin->window);
+	if (!real_vision)
+		main_window_toggle_message_view(mainwin);
 
 #if !GTK_CHECK_VERSION(2, 6, 0)
 	{
@@ -1588,7 +1601,8 @@
 	allocation = &(GTK_WIDGET_PTR(mainwin->summaryview)->allocation);
 	if (allocation->width > 1 && allocation->height > 1) {
 		if (vlayout) {
-			if (!(mainwin->type & SEPARATE_MESSAGE))
+			if (!(mainwin->type & SEPARATE_MESSAGE) &&
+			    messageview_is_visible(mainwin->messageview))
 				prefs_common.summaryview_vwidth = allocation->width;
 			prefs_common.summaryview_vheight = allocation->height;
 		} else {
@@ -1623,14 +1637,16 @@
 		prefs_common.folderview_height = allocation->height;
 	}
 
-	allocation = &(GTK_WIDGET_PTR(mainwin->messageview)->allocation);
-	if (allocation->width > 1 && allocation->height > 1) {
-		if (vlayout) {
-			prefs_common.msgview_vwidth = allocation->width;
-			prefs_common.msgview_vheight = allocation->height;
-		} else {
-			prefs_common.msgview_width = allocation->width;
-			prefs_common.msgview_height = allocation->height;
+	if (messageview_is_visible(mainwin->messageview)){
+		allocation = &(GTK_WIDGET_PTR(mainwin->messageview)->allocation);
+		if (allocation->width > 1 && allocation->height > 1) {
+			if (vlayout) {
+				prefs_common.msgview_vwidth = allocation->width;
+				prefs_common.msgview_vheight = allocation->height;
+			} else {
+				prefs_common.msgview_width = allocation->width;
+				prefs_common.msgview_height = allocation->height;
+			}
 		}
 	}
 
