diff --git a/embed/web-extension/ephy-web-extension.c b/embed/web-extension/ephy-web-extension.c
index 3becc36..92c0ce2 100644
--- a/embed/web-extension/ephy-web-extension.c
+++ b/embed/web-extension/ephy-web-extension.c
@@ -229,7 +229,7 @@ should_store_cb (const char *username,
 {
   EphyEmbedFormAuth *form_auth = EPHY_EMBED_FORM_AUTH (user_data);
 
-  if (username && password) {
+  if (password) {
     WebKitDOMNode *username_node;
     char *username_field_value = NULL;
     char *password_field_value = NULL;
diff --git a/lib/ephy-form-auth-data.c b/lib/ephy-form-auth-data.c
index f3888aa..45c282c 100644
--- a/lib/ephy-form-auth-data.c
+++ b/lib/ephy-form-auth-data.c
@@ -44,7 +44,8 @@ ephy_form_auth_data_get_password_schema (void)
 }
 
 static void
-normalize_and_prepare_uri (SoupURI *uri)
+normalize_and_prepare_uri (SoupURI  *uri,
+                           gboolean  remove_path)
 {
   g_assert (uri != NULL);
 
@@ -55,7 +56,8 @@ normalize_and_prepare_uri (SoupURI *uri)
     soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTP);
 
   soup_uri_set_query (uri, NULL);
-  soup_uri_set_path (uri, "/");
+  if (remove_path)
+    soup_uri_set_path (uri, "/");
 }
 
 static GHashTable *
@@ -120,7 +122,11 @@ ephy_form_auth_data_store (const char *uri,
 
   res = g_simple_async_result_new (NULL, callback, userdata, ephy_form_auth_data_store);
 
-  normalize_and_prepare_uri (fake_uri);
+  /* Mailman passwords need the full URI */
+  if (!form_username && g_strcmp0 (form_password, "adminpw") == 0)
+    normalize_and_prepare_uri (fake_uri, FALSE);
+  else
+    normalize_and_prepare_uri (fake_uri, TRUE);
   fake_uri_str = soup_uri_to_string (fake_uri, FALSE);
   value = secret_value_new (password, -1, "text/plain");
   attributes = ephy_form_auth_data_get_secret_attributes_table (fake_uri_str, form_username,
@@ -241,7 +247,10 @@ ephy_form_auth_data_query (const char *uri,
   key = soup_uri_new (uri);
   g_return_if_fail (key);
 
-  normalize_and_prepare_uri (key);
+  if (!form_username && g_strcmp0 (form_password, "adminpw") == 0)
+    normalize_and_prepare_uri (key, FALSE);
+  else
+    normalize_and_prepare_uri (key, TRUE);
 
   key_str = soup_uri_to_string (key, FALSE);
 
