diff --git a/wikidict/lang/fr/template_handlers.py b/wikidict/lang/fr/template_handlers.py
index 381ea52d7..f63003ec1 100644
--- a/wikidict/lang/fr/template_handlers.py
+++ b/wikidict/lang/fr/template_handlers.py
@@ -338,7 +338,7 @@ def render_compose_de(tpl: str, parts: List[str], data: Dict[str, str]) -> str:
>>> render_compose_de("composé de", ["faire", "boutique", "cul"], defaultdict(str, {"m": "1", "lang": "fr"}))
'Composé de faire, boutique et cul'
>>> render_compose_de("composé de", ["arthro-", "-logie"], defaultdict(str, {"lang": "fr", "m": "oui"}))
- 'Composé de arthro- et de -logie'
+ 'Dérivé du préfixe arthro-, avec le suffixe -logie'
>>> render_compose_de("composé de", ["morin", "morine", "-elle"], defaultdict(str, {"lang": "fr", "m": "1"}))
'Composé de morin, morine et -elle'
>>> render_compose_de("composé de", ["bi-", "mensis"], defaultdict(str, {"lang": "fr", "sens1": "deux", "sens2":"mois"}))
@@ -373,7 +373,7 @@ def render_compose_de(tpl: str, parts: List[str], data: Dict[str, str]) -> str:
b4 = "1" if len(parts) > 3 else "0"
b = b1 + b2 + b3 + b4
- is_derived = b in ["1000", "0100", "1020"]
+ is_derived = b in ["1000", "0100", "1020", "1100"]
if is_derived:
# Dérivé
@@ -417,6 +417,10 @@ def render_compose_de(tpl: str, parts: List[str], data: Dict[str, str]) -> str:
phrase += " et le suffixe " + word_tr_sens(
parts[2], data.get("tr3", ""), data.get("sens3", "")
)
+ elif b == "1100":
+ phrase += f' du préfixe {word_tr_sens(parts[0], data.get("tr1", ""), data.get("sens1", "") )},'
+ phrase += f' avec le suffixe {word_tr_sens(parts[1], data.get("tr2", ""), data.get("sens2", ""))}'
+
if data["sens"]:
phrase += f", littéralement « {data['sens']} »"
return phrase