diff --git a/libedataserverui/e-client-utils.c b/libedataserverui/e-client-utils.c
index 948bc17..0930d8b 100644
--- a/libedataserverui/e-client-utils.c
+++ b/libedataserverui/e-client-utils.c
@@ -25,8 +25,8 @@
 
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
-#include <libsoup/soup.h>
 
+#include <libedataserver/e-url.h>
 #include <libedataserver/e-client.h>
 #include "libedataserver/e-client-private.h"
 #include <libebook/e-book-client.h>
@@ -756,20 +756,21 @@ static gchar *
 get_prompt_key (EClient *client,
                 const gchar *user_name)
 {
-	SoupURI *suri;
+	EUri *uri;
 	gchar *uri_str;
 
 	g_return_val_if_fail (client != NULL, NULL);
 
-	suri = soup_uri_new (e_client_get_uri (client));
-	g_return_val_if_fail (suri != NULL, NULL);
+	uri = e_uri_new (e_client_get_uri (client));
+	g_return_val_if_fail (uri != NULL, NULL);
 
-	soup_uri_set_user (suri, user_name);
-	soup_uri_set_password (suri, NULL);
-	soup_uri_set_fragment (suri, NULL);
+	if (uri->user)
+		g_free (uri->user);
+	uri->user = g_strdup (user_name);
+	
 
-	uri_str = soup_uri_to_string (suri, FALSE);
-	soup_uri_free (suri);
+	uri_str = e_uri_to_string (uri, FALSE);
+	e_uri_free (uri);
 
 	return uri_str;
 }
