diff --git a/mail/e-mail-folder-utils.c b/mail/e-mail-folder-utils.c
index 6332e9c..f6c295d 100644
--- a/mail/e-mail-folder-utils.c
+++ b/mail/e-mail-folder-utils.c
@@ -248,8 +248,13 @@ e_mail_folder_uri_parse (CamelSession *session,
 	if (g_strcmp0 (url->protocol, "folder") == 0) {
 
 		if (url->host != NULL) {
-			gchar *uid = g_strdup (url->host);
-			camel_url_decode (uid);
+			gchar *uid;
+
+			if (!url->user || !*url->user)
+				uid = g_strdup (url->host);
+			else
+				uid = g_strconcat (url->user, "@", url->host, NULL);
+
 			service = camel_session_get_service (session, uid);
 			g_free (uid);
 		}
diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c
index 1a80d79..2fdf88f 100644
--- a/mail/em-folder-utils.c
+++ b/mail/em-folder-utils.c
@@ -723,6 +723,7 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs,
 	const gchar *uri, *path;
 	CamelStore *store = NULL;
 	struct _EMCreateFolderTempData  *emcftd;
+	GError *error = NULL;
 
 	if (response != GTK_RESPONSE_OK) {
 		gtk_widget_destroy ((GtkWidget *) emfs);
@@ -736,7 +737,10 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs,
 
 	session = em_folder_tree_get_session (folder_tree);
 
-	if (!e_mail_folder_uri_parse (CAMEL_SESSION (session), uri, &store, NULL, NULL)) {
+	if (!e_mail_folder_uri_parse (CAMEL_SESSION (session), uri, &store, NULL, &error)) {
+		g_warning ("%s: failed to parse uri: %s", G_STRFUNC, error ? error->message : "Unknown error");
+		if (error)
+			g_error_free (error);
 		return;
 	}
 
