diff --git a/prive/formulaires/login.php b/prive/formulaires/login.php
index 3cfeb4476047b2d24f9a232590030e3eb77f5987..c999804053d73551e012845330b064bb073baa4c 100644
--- a/prive/formulaires/login.php
+++ b/prive/formulaires/login.php
@@ -185,14 +185,21 @@ function formulaires_login_traiter_dist($cible="",$login="",$prive=null){
 
 	if ($cible) {
 		$cible = parametre_url($cible, 'var_login', '', '&');
-	} 
-	
-	// transformer la cible absolue en cible relative
-	// pour pas echouer quand la meta adresse_site est foireuse
-	if (strncmp($cible,$u = url_de_base(),strlen($u))==0){
-		$cible = "./".substr($cible,strlen($u));
+
+		// transformer la cible absolue en cible relative
+		// pour pas echouer quand la meta adresse_site est foireuse
+		if (strncmp($cible,$u = url_de_base(),strlen($u))==0){
+			$cible = "./".substr($cible,strlen($u));
+		}
+
+		// si c'est une url absolue, refuser la redirection
+		// sauf si cette securite est levee volontairement par le webmestre
+		elseif (preg_match(";^([a-z]+:)?//;Uims",$cible) AND !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
+			$cible = "";
+		}
 	}
 
+
 	// Si on est admin, poser le cookie de correspondance
 	if ($GLOBALS['auteur_session']['statut'] == '0minirezo') {
 		include_spip('inc/cookie');