Index: gc_lang/fr/modules-js/gce_suggestions.js
==================================================================
--- gc_lang/fr/modules-js/gce_suggestions.js
+++ gc_lang/fr/modules-js/gce_suggestions.js
@@ -239,25 +239,23 @@
         } else if (sGender == ":f") {
             return suggFemPlur(sFlex);
         }
     }
     let aSugg = new Set();
-    if (!sFlex.includes("-")) {
-        if (sFlex.endsWith("l")) {
-            if (sFlex.endsWith("al") && sFlex.length > 2 && _oSpellChecker.isValid(sFlex.slice(0,-1)+"ux")) {
-                aSugg.add(sFlex.slice(0,-1)+"ux");
-            }
-            if (sFlex.endsWith("ail") && sFlex.length > 3 && _oSpellChecker.isValid(sFlex.slice(0,-2)+"ux")) {
-                aSugg.add(sFlex.slice(0,-2)+"ux");
-            }
-        }
-        if (_oSpellChecker.isValid(sFlex+"s")) {
-            aSugg.add(sFlex+"s");
-        }
-        if (_oSpellChecker.isValid(sFlex+"x")) {
-            aSugg.add(sFlex+"x");
-        }
+    if (sFlex.endsWith("l")) {
+        if (sFlex.endsWith("al") && sFlex.length > 2 && _oSpellChecker.isValid(sFlex.slice(0,-1)+"ux")) {
+            aSugg.add(sFlex.slice(0,-1)+"ux");
+        }
+        if (sFlex.endsWith("ail") && sFlex.length > 3 && _oSpellChecker.isValid(sFlex.slice(0,-2)+"ux")) {
+            aSugg.add(sFlex.slice(0,-2)+"ux");
+        }
+    }
+    if (_oSpellChecker.isValid(sFlex+"s")) {
+        aSugg.add(sFlex+"s");
+    }
+    if (_oSpellChecker.isValid(sFlex+"x")) {
+        aSugg.add(sFlex+"x");
     }
     if (mfsp.hasMiscPlural(sFlex)) {
         mfsp.getMiscPlural(sFlex).forEach(function(x) { aSugg.add(x); });
     }
     if (aSugg.size > 0) {
@@ -266,13 +264,10 @@
     return "";
 }
 
 function suggSing (sFlex) {
     // returns singular forms assuming sFlex is plural
-    if (sFlex.includes("-")) {
-        return "";
-    }
     let aSugg = new Set();
     if (sFlex.endsWith("ux")) {
         if (_oSpellChecker.isValid(sFlex.slice(0,-2)+"l")) {
             aSugg.add(sFlex.slice(0,-2)+"l");
         }

Index: gc_lang/fr/modules/gce_suggestions.py
==================================================================
--- gc_lang/fr/modules/gce_suggestions.py
+++ gc_lang/fr/modules/gce_suggestions.py
@@ -182,31 +182,28 @@
         if sGender == ":m":
             return suggMasPlur(sFlex)
         if sGender == ":f":
             return suggFemPlur(sFlex)
     aSugg = set()
-    if "-" not in sFlex:
-        if sFlex.endswith("l"):
-            if sFlex.endswith("al") and len(sFlex) > 2 and _oSpellChecker.isValid(sFlex[:-1]+"ux"):
-                aSugg.add(sFlex[:-1]+"ux")
-            if sFlex.endswith("ail") and len(sFlex) > 3 and _oSpellChecker.isValid(sFlex[:-2]+"ux"):
-                aSugg.add(sFlex[:-2]+"ux")
-        if _oSpellChecker.isValid(sFlex+"s"):
-            aSugg.add(sFlex+"s")
-        if _oSpellChecker.isValid(sFlex+"x"):
-            aSugg.add(sFlex+"x")
+    if sFlex.endswith("l"):
+        if sFlex.endswith("al") and len(sFlex) > 2 and _oSpellChecker.isValid(sFlex[:-1]+"ux"):
+            aSugg.add(sFlex[:-1]+"ux")
+        if sFlex.endswith("ail") and len(sFlex) > 3 and _oSpellChecker.isValid(sFlex[:-2]+"ux"):
+            aSugg.add(sFlex[:-2]+"ux")
+    if _oSpellChecker.isValid(sFlex+"s"):
+        aSugg.add(sFlex+"s")
+    if _oSpellChecker.isValid(sFlex+"x"):
+        aSugg.add(sFlex+"x")
     if mfsp.hasMiscPlural(sFlex):
         aSugg.update(mfsp.getMiscPlural(sFlex))
     if aSugg:
         return "|".join(aSugg)
     return ""
 
 
 def suggSing (sFlex):
     "returns singular forms assuming sFlex is plural"
-    if "-" in sFlex:
-        return ""
     aSugg = set()
     if sFlex.endswith("ux"):
         if _oSpellChecker.isValid(sFlex[:-2]+"l"):
             aSugg.add(sFlex[:-2]+"l")
         if _oSpellChecker.isValid(sFlex[:-2]+"il"):