Index: mail/message-list.c
===================================================================
--- mail/message-list.c	(revision 33954)
+++ mail/message-list.c	(working copy)
@@ -3421,20 +3421,51 @@ void message_list_free_uids(MessageList 
 void 
 message_list_set_threaded_expand_all (MessageList *ml)
 {
+	GError *error = NULL;
+	
+	g_return_if_fail( ml != NULL);
+	
+	d( g_print("%s:%d (%s)\n", __FILE__, G_STRLOC, G_STRFUNC); )
 	if (ml->threaded) {
 		ml->expand_all = 1;
-		
+		/* The user wants threads to appear expanded. So let's save this  */ 
+		gconf_client_set_bool (mail_config_get_gconf_client(),
+					   			  "/apps/evolution/mail/display/thread_expand",
+				       				  TRUE,
+								  &error);
+		if (error != NULL) {
+			g_warning ("(%s) %s\n", G_STRFUNC, error->message);
+			g_error_free( error );
+		}
+		e_tree_memory_set_expanded_default(E_TREE_MEMORY(ml->model), TRUE);
+		d( g_print("%s:%d (%s) saved expanded state information\n", __FILE__, G_STRLOC, G_STRFUNC); )
 		if (ml->frozen == 0)
 			mail_regen_list (ml, ml->search, NULL, NULL);
 	}	
+	
 }
 	
 void 
 message_list_set_threaded_collapse_all (MessageList *ml)
 {
+	GError *error = NULL;
+	
+	g_return_if_fail( ml != NULL);
+	
+	d( g_print("%s:%d (%s)\n", __FILE__, G_STRLOC, G_STRFUNC); )
 	if (ml->threaded) {
 		ml->collapse_all = 1;
-
+		gconf_client_set_bool (mail_config_get_gconf_client(),
+					  			  "/apps/evolution/mail/display/thread_expand",
+				       				  FALSE,
+								  &error);
+		if (error != NULL) {
+			g_warning ("(%s) %s\n", G_STRFUNC, error->message);
+			g_error_free( error );
+		}
+		e_tree_memory_set_expanded_default(E_TREE_MEMORY(ml->model), FALSE);
+		
+		d( g_print("%s:%d (%s) saved expanded state information\n", __FILE__, G_STRLOC, G_STRFUNC); )
 		if (ml->frozen == 0)
 			mail_regen_list (ml, ml->search, NULL, NULL);
 	}
Index: mail/evolution-mail.schemas.in
===================================================================
--- mail/evolution-mail.schemas.in	(revision 33954)
+++ mail/evolution-mail.schemas.in	(working copy)
@@ -582,7 +582,7 @@
          <short>Default value for thread expand state</short>
          <long>
 	  This setting specifies whether the threads should be in expanded
-	  or collapsed state by default. Evolution requires a restart
+	  or collapsed state by default.
          </long>
       </locale>
     </schema>
