diff -Nur -x '*.orig' -x '*~' libsoup2.4-2.4.1/libsoup/soup-auth-basic.c libsoup2.4-2.4.1.new/libsoup/soup-auth-basic.c
--- libsoup2.4-2.4.1/libsoup/soup-auth-basic.c	2008-03-31 17:57:59.000000000 +0200
+++ libsoup2.4-2.4.1.new/libsoup/soup-auth-basic.c	2009-03-26 11:17:23.000000000 +0100
@@ -109,13 +109,19 @@
 	g_return_if_fail (username != NULL);
 	g_return_if_fail (password != NULL);
 
-	user_pass = g_strdup_printf ("%s:%s", username, password);
-	len = strlen (user_pass);
-
-	priv->token = g_base64_encode ((guchar *)user_pass, len);
-
-	memset (user_pass, 0, len);
-	g_free (user_pass);
+        const gchar *charset;
+        g_get_charset (&charset);
+        gchar *username_conv = g_convert (username, -1, "ISO-8859-1", charset,
+NULL, NULL, NULL);
+
+        user_pass = g_strdup_printf ("%s:%s", username_conv, password);
+        len = strlen (user_pass);
+
+        priv->token = g_base64_encode ((guchar *)user_pass, len);
+
+        memset (user_pass, 0, len);
+        g_free (user_pass);
+        g_free (username_conv);
 }
 
 static gboolean
diff -Nur -x '*.orig' -x '*~' libsoup2.4-2.4.1/libsoup/soup-logger.c libsoup2.4-2.4.1.new/libsoup/soup-logger.c
--- libsoup2.4-2.4.1/libsoup/soup-logger.c	2008-03-31 17:57:59.000000000 +0200
+++ libsoup2.4-2.4.1.new/libsoup/soup-logger.c	2009-03-26 11:21:24.000000000 +0100
@@ -420,7 +420,7 @@
 soup_logger_print_basic_auth (SoupLogger *logger, const char *value)
 {
 	char *decoded, *p;
-	gsize len;
+	gsize len, len_conv;
 
 	decoded = (char *)g_base64_decode (value + 6, &len);
 	if (!decoded)
@@ -430,9 +430,14 @@
 		while (++p < decoded + len)
 			*p = '*';
 	}
+        const gchar *charset;
+        g_get_charset (&charset);
+        gchar *decoded_conv = g_convert (decoded, -1, charset, "ISO-8859-1", NULL, &len_conv, NULL);
+
 	soup_logger_print (logger, SOUP_LOGGER_LOG_HEADERS, '>',
-			   "Authorization: Basic [%.*s]", len, decoded);
+			   "Authorization: Basic [%.*s]", len_conv, decoded_conv);
 	g_free (decoded);
+	g_free (decoded_conv);
 }
 
 static void
