diff --git a/ecrire/inc_documents.php b/ecrire/inc_documents.php
index 1ace3194f2ad5f49189866c74ec34432915e4bde..9eec37c73264a56d5df966dd41ea34d0051f2f68 100644
--- a/ecrire/inc_documents.php
+++ b/ecrire/inc_documents.php
@@ -434,20 +434,24 @@ function inserer_documents($letexte) {
 //
 function fichiers_upload($dir) {
 	$fichiers = array();
-	$d = opendir($dir);
 
-	while (($f = readdir($d)) !== false) {
-		if (($f[0] != '.') AND is_readable("$dir/$f"))
-			if (is_file("$dir/$f") 
-			AND $f != 'remove.txt')
-				$fichiers[] = "$dir/$f";
-		else if (is_dir("$dir/$f"))
-			$fichiers = array_merge($fichiers, fichiers_upload("$dir/$f"));
+	if (@is_dir($dir) AND is_readable($dir)) {
+		$d = opendir($dir);
+		while (($f = readdir($d)) !== false) {
+			if (($f[0] != '.') AND is_readable("$dir/$f"))
+				if (is_file("$dir/$f") 
+				AND $f != 'remove.txt')
+					$fichiers[] = "$dir/$f";
+			else if (is_dir("$dir/$f"))
+				$fichiers = array_merge($fichiers, fichiers_upload("$dir/$f"));
 
-	}
-	closedir($d);
+		}
+		closedir($d);
 
-	sort($fichiers);
+		sort($fichiers);
+	}
+	else
+		spip_log("repertoire $dir absent ou illisible");
 
 	return $fichiers;
 }