diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c
index 10751a3..1068400 100644
--- a/calendar/gui/itip-utils.c
+++ b/calendar/gui/itip-utils.c
@@ -1201,6 +1201,29 @@ append_cal_attachments (EMsgComposer *composer,
 	g_slist_free (attach_list);
 }
 
+static void
+setup_from (ECalComponentItipMethod method, ECalComponent *comp, EComposerHeaderTable *table)
+{
+	EAccountList *accounts;
+
+	accounts = e_composer_header_table_get_account_list (table);
+	if (accounts) {
+		EAccount *account = NULL;
+
+		if (!account) {
+			gchar *from = comp_from (method, comp);
+
+			if (from)
+				account = (EAccount *) e_account_list_find (accounts, E_ACCOUNT_FIND_ID_ADDRESS, from);
+
+			g_free (from);
+		}
+
+		if (account)
+			e_composer_header_table_set_account (table, account);
+	}
+}
+
 gboolean
 itip_send_comp (ECalComponentItipMethod method, ECalComponent *send_comp,
 		ECal *client, icalcomponent *zones, GSList *attachments_list, GList *users,
@@ -1212,7 +1235,6 @@ itip_send_comp (ECalComponentItipMethod method, ECalComponent *send_comp,
 	ECalComponent *comp = NULL;
 	icalcomponent *top_level = NULL;
 	gchar *ical_string = NULL;
-	gchar *from = NULL;
 	gchar *content_type = NULL;
 	gchar *subject = NULL;
 	gboolean retval = FALSE;
@@ -1255,15 +1277,12 @@ itip_send_comp (ECalComponentItipMethod method, ECalComponent *send_comp,
 	/* Subject information */
 	subject = comp_subject (method, comp);
 
-	/* From address */
-	from = comp_from (method, comp);
-
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
 	em_composer_utils_setup_default_callbacks (composer);
 
+	setup_from (method, send_comp, table);
 	e_composer_header_table_set_subject (table, subject);
-	e_composer_header_table_set_account_name (table, from);
 	e_composer_header_table_set_destinations_to (table, destinations);
 
 	e_destination_freev (destinations);
@@ -1325,7 +1344,6 @@ itip_send_comp (ECalComponentItipMethod method, ECalComponent *send_comp,
 		g_list_free (users);
 	}
 
-	g_free (from);
 	g_free (content_type);
 	g_free (subject);
 	g_free (ical_string);
@@ -1347,7 +1365,6 @@ reply_to_calendar_comp (ECalComponentItipMethod method,
 	ECalComponent *comp = NULL;
 	icalcomponent *top_level = NULL;
 	GList *users = NULL;
-	gchar *from = NULL;
 	gchar *subject = NULL;
 	gchar *ical_string = NULL;
 	gboolean retval = FALSE;
@@ -1363,15 +1380,12 @@ reply_to_calendar_comp (ECalComponentItipMethod method,
 	/* Subject information */
 	subject = comp_subject (method, comp);
 
-	/* From address */
-	from = comp_from (method, comp);
-
 	composer = e_msg_composer_new ();
 	table = e_msg_composer_get_header_table (composer);
 	em_composer_utils_setup_default_callbacks (composer);
 
+	setup_from (method, send_comp, table);
 	e_composer_header_table_set_subject (table, subject);
-	e_composer_header_table_set_account_name (table, from);
 	e_composer_header_table_set_destinations_to (table, destinations);
 
 	e_destination_freev (destinations);
@@ -1486,7 +1500,6 @@ reply_to_calendar_comp (ECalComponentItipMethod method,
 		g_list_free (users);
 	}
 
-	g_free (from);
 	g_free (subject);
 	g_free (ical_string);
 	return retval;
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index e76159a..5072e24 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -1796,19 +1796,6 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
 }
 
 static EAccount *
-guess_account_folder(CamelFolder *folder)
-{
-	EAccount *account;
-	gchar *tmp;
-
-	tmp = camel_url_to_string(CAMEL_SERVICE(folder->parent_store)->url, CAMEL_URL_HIDE_ALL);
-	account = mail_config_get_account_by_source_url(tmp);
-	g_free(tmp);
-
-	return account;
-}
-
-static EAccount *
 guess_account (CamelMimeMessage *message, CamelFolder *folder)
 {
 	GHashTable *account_hash = NULL;
@@ -1820,27 +1807,10 @@ guess_account (CamelMimeMessage *message, CamelFolder *folder)
 		CAMEL_RECIPIENT_TYPE_CC
 	};
 
-	/* check for newsgroup header */
-	if (folder
-	    && camel_medium_get_header((CamelMedium *)message, "Newsgroups")
-	    && (account = guess_account_folder(folder)))
+	account = em_utils_guess_account (message, folder);
+	if (account)
 		return account;
 
-	/* check for source folder */
-	if (folder) {
-		account = guess_account_folder(folder);
-		if (account)
-			return account;
-	}
-
-	/* then message source */
-	if (account == NULL
-	    && (tmp = camel_mime_message_get_source(message))) {
-		account = mail_config_get_account_by_source_url(tmp);
-		if (account)
-			return account;
-	}
-
 	/* finally recipient (to/cc) in account table */
 	account_hash = generate_account_hash ();
 	for (j=0;account == NULL && j<2;j++) {
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 5544a7d..332057a 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -2422,3 +2422,41 @@ em_utils_show_info_silent (GtkWidget *widget)
 		g_signal_connect(widget, "response", G_CALLBACK(error_response), NULL);
 	e_activity_handler_make_error (handler, "mail", E_LOG_WARNINGS, widget);
 }
+
+static EAccount *
+guess_account_folder (CamelFolder *folder)
+{
+	EAccount *account;
+	gchar *tmp;
+
+	tmp = camel_url_to_string (CAMEL_SERVICE (folder->parent_store)->url, CAMEL_URL_HIDE_ALL);
+	account = mail_config_get_account_by_source_url (tmp);
+	g_free (tmp);
+
+	return account;
+}
+
+EAccount *
+em_utils_guess_account (CamelMimeMessage *message, CamelFolder *folder)
+{
+	EAccount *account = NULL;
+	const gchar *tmp;
+
+	/* check for newsgroup header */
+	if (folder
+	    && camel_medium_get_header ((CamelMedium *)message, "Newsgroups")
+	    && (account = guess_account_folder (folder)))
+		return account;
+
+	/* check for source folder */
+	if (folder)
+		account = guess_account_folder (folder);
+
+	/* then message source */
+	if (account == NULL
+	    && (tmp = camel_mime_message_get_source (message))) {
+		account = mail_config_get_account_by_source_url (tmp);
+	}
+
+	return account;
+}
diff --git a/mail/em-utils.h b/mail/em-utils.h
index 22b47b5..efb64f5 100644
--- a/mail/em-utils.h
+++ b/mail/em-utils.h
@@ -103,6 +103,8 @@ const gchar *em_utils_snoop_type(CamelMimePart *part);
 /* clears flag 'get_password_canceled' at every known accounts, so if needed, get_password will show dialog */
 void em_utils_clear_get_password_canceled_accounts_flag (void);
 
+struct _EAccount *em_utils_guess_account (CamelMimeMessage *message, CamelFolder *folder);
+
 G_END_DECLS
 
 #endif /* __EM_UTILS_H__ */
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 89313dd..4be302a 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -233,9 +233,20 @@ find_to_address (struct _itip_puri *pitip, icalcomponent *ical_comp, icalparamet
 
 	it = e_list_get_iterator((EList *)pitip->accounts);
 
-	/* Look through the list of attendees to find the user's address */
+	if (!pitip->to_address && pitip->msg) {
+		EAccount *account = em_utils_guess_account (pitip->msg, pitip->folder);
+
+		if (account) {
+			pitip->to_address = g_strdup (e_account_get_string (account, E_ACCOUNT_ID_ADDRESS));
+			if (pitip->to_address && !*pitip->to_address) {
+				g_free (pitip->to_address);
+				pitip->to_address = NULL;
+			}
+		}
+	}
 
-	if (!pitip->my_address)
+	/* Look through the list of attendees to find the user's address */
+	if (!pitip->to_address)
 		while (e_iterator_is_valid(it)) {
 			const EAccount *account = e_iterator_get(it);
 			icalproperty *prop = NULL;
@@ -290,8 +301,7 @@ find_to_address (struct _itip_puri *pitip, icalcomponent *ical_comp, icalparamet
 	 * previous loop, but it would hurt the performance for all providers in
 	 * general. Hence, we choose to iterate through the accounts list again.
 	 */
-
-	if (!pitip->my_address)
+	if (!pitip->to_address)
 		while (e_iterator_is_valid(it)) {
 			const EAccount *account = e_iterator_get(it);
 			icalproperty *prop = NULL;
@@ -1914,7 +1924,6 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
 	}
 
 	if (!save_schedules && pitip->delete_message) {
-		g_message ("Deleting!");
 		camel_folder_delete_message (pitip->folder, pitip->uid);
 	}
 
@@ -2500,14 +2509,12 @@ source_selection_changed (ESourceSelector *selector, gpointer data)
 	GSList *groups;
 
 	/* first we clear all the completion flags from all sources */
-	g_message ("Clearing selection");
 	for (groups = e_source_list_peek_groups (source_list); groups; groups = groups->next) {
 		ESourceGroup *group = E_SOURCE_GROUP (groups->data);
 		GSList *sources;
 		for (sources = e_source_group_peek_sources (group); sources; sources = sources->next) {
 			ESource *source = E_SOURCE (sources->data);
 
-			g_message ("Unsetting for %s", e_source_peek_name (source));
 			e_source_set_property (source, "conflict", NULL);
 		}
 	}
@@ -2516,7 +2523,6 @@ source_selection_changed (ESourceSelector *selector, gpointer data)
 	   property on those sources */
 	selection = e_source_selector_get_selection (selector);
 	for (l = selection; l; l = l->next) {
-		g_message ("Setting for %s", e_source_peek_name (E_SOURCE (l->data)));
 		e_source_set_property (E_SOURCE (l->data), "conflict", "true");
 	}
 	e_source_selector_free_selection (selection);
diff --git a/plugins/itip-formatter/itip-view.c b/plugins/itip-formatter/itip-view.c
index a550559..648d35e 100644
--- a/plugins/itip-formatter/itip-view.c
+++ b/plugins/itip-formatter/itip-view.c
@@ -774,7 +774,6 @@ button_clicked_cb (GtkWidget *widget, gpointer data)
 
 	response = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), DATA_RESPONSE_KEY));
 
-	g_message ("Response %d", response);
 	g_signal_emit (G_OBJECT (data), signals[RESPONSE], 0, response);
 }
 
