diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index e494c624df57e7b76e267093fb2e2d35ee8e94dd..aaad7d7343742717b3d6b09d5ca08678e077ce95 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -427,8 +427,12 @@ function set_request($var, $val = null, $c = false) {
  */
 function tester_url_absolue($url) {
 	$url = trim($url);
-	if (preg_match(";^([a-z]{3,7}:)?//;Uims", $url)
-	  and strncasecmp($url, 'file://', 7)!==0){
+	if (preg_match(";^([a-z]{3,7}:)?//;Uims", $url, $m)) {
+		if (isset($m[1])
+			and in_array(rtrim($m[1], ':'), array('file', 'php', 'zlib', 'glob', 'phar', 'ssh2', 'rar', 'ogg', 'expect'))
+		  ) {
+			return false;
+		}
 		return true;
 	}
 	return false;