Index: evolution/plugins/exchange-operations/exchange-folder-subscription.c
===================================================================
RCS file: /cvs/gnome/evolution/plugins/exchange-operations/exchange-folder-subscription.c,v
retrieving revision 1.8
diff -u -p -r1.8 exchange-folder-subscription.c
--- evolution/plugins/exchange-operations/exchange-folder-subscription.c	3 Feb 2006 10:27:26 -0000	1.8
+++ evolution/plugins/exchange-operations/exchange-folder-subscription.c	21 Apr 2006 04:05:32 -0000
@@ -215,6 +215,7 @@ subscribe_to_folder (GtkWidget *dialog, 
 			g_free (folder_name);
 			switch (result) {
 				case EXCHANGE_ACCOUNT_FOLDER_OK:
+					exchange_account_rescan_tree (subscription_info->account);
 					break;
 				case EXCHANGE_ACCOUNT_FOLDER_ALREADY_EXISTS:
 					e_error_run (NULL, ERROR_DOMAIN ":folder-exists-error", NULL);
@@ -265,6 +266,11 @@ create_folder_subscription_dialog (Excha
 	GladeXML *glade_xml;
 	GtkWidget *dialog;
 	SubscriptionInfo *subscription_info;
+	int mode;
+
+	exchange_account_is_offline (account, &mode);
+	if (mode == OFFLINE_MODE)
+		return FALSE;
 
 	subscription_info = g_new0 (SubscriptionInfo, 1);
 	subscription_info->account = account;
Index: evolution-exchange/storage/exchange-storage.c
===================================================================
RCS file: /cvs/gnome/evolution-exchange/storage/exchange-storage.c,v
retrieving revision 1.3
diff -u -p -r1.3 exchange-storage.c
--- evolution-exchange/storage/exchange-storage.c	11 Jul 2005 12:19:32 -0000	1.3
+++ evolution-exchange/storage/exchange-storage.c	21 Apr 2006 04:07:14 -0000
@@ -292,6 +292,9 @@ discover_shared_folder (EStorage *storag
 	result = exchange_account_discover_shared_folder (account,
 							  owner, folder_name,
 							  &folder);
+	if (result == EXCHANGE_ACCOUNT_FOLDER_OK) {
+		exchange_account_rescan_tree (account);
+	}
 	callback (storage, account_to_storage_result (result),
 		  folder ? e_folder_exchange_get_path (folder) : NULL,
 		  user_data);
