diff --git a/ecrire/inc_flock.php b/ecrire/inc_flock.php
index ac3550533d2f17e700c4ef584b7c20de90d7553e..02cc579265ec1a478b0a4300d77b1999f4ea3190 100644
--- a/ecrire/inc_flock.php
+++ b/ecrire/inc_flock.php
@@ -197,7 +197,8 @@ function preg_files($dir, $pattern=-1 /* AUTO */ ) {
 	if ($pattern == -1)
 		$pattern = "^$dir";
 	$fichiers = array();
-	$dir = preg_replace(',/[^/]*$,', '', $dir);
+	// A quoi sert cette ligne?
+//	$dir = preg_replace(',/[^/]*$,', '', $dir);
 
 	if (@is_dir($dir) AND is_readable($dir) AND $d = @opendir($dir)) {
 		while (($f = readdir($d)) !== false) {
@@ -209,17 +210,18 @@ function preg_files($dir, $pattern=-1 /* AUTO */ ) {
 					if (preg_match(",$pattern,i", "$dir/$f"))
 						$fichiers[] = "$dir/$f";
 				} else if (is_dir("$dir/$f")) {
-					$fichiers = array_merge($fichiers,
-						preg_files("$dir/$f", $pattern));
+					$beginning = $fichiers;
+					$end = preg_files("$dir/$f", $pattern);
+					$fichiers = array_merge((array)$beginning, (array)$end);
 				}
 			}
 		}
 		closedir($d);
 		sort($fichiers);
 	}
-	else
+	else {
 		spip_log("repertoire $dir absent ou illisible");
-
+	}
 	sort($fichiers);
 	return $fichiers;
 }