diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 9ce924b7103b053f05a3b9474363d040e05708df..7449a06c6c59d1c2e35927aa4215c572e6e84cc3 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -37,7 +37,10 @@ function charger_fonction($nom, $dossier='exec', $continue=false) {
 
 	// passer en minuscules (cf les balises de formulaires)
 	// et inclure le fichier
-	$inc=find_in_path(($d = strtolower($nom) . '.php'), $dossier, true /* include */);
+	if (!$inc=find_in_path(($d = strtolower($nom) . '.php'), $dossier, true /* include */))
+		// si le fichier truc/machin/nom.php n'existe pas,
+		// la fonction peut etre definie dans truc/machin.php qui regroupe plusieurs petites fonctions
+		find_in_path(substr($dossier,0,-1) . '.php', '', true /* include */);
 	if (function_exists($f)) return $f;
 	if (function_exists($g)) return $g;