diff --git a/ecrire/inc_mots.php3 b/ecrire/inc_mots.php3
index 6318a4ea0924262776333101b8933930fd77d6be..8751835342d010b4e86cb7c86924db51db58709a 100644
--- a/ecrire/inc_mots.php3
+++ b/ecrire/inc_mots.php3
@@ -101,6 +101,22 @@ function mots_ressemblants($mot, $table_mots, $table_ids='') {
 }
 
 
+function un_seul_mot_dans_groupe($id_groupe)
+{
+	list($u) = spip_fetch_array(spip_query("SELECT unseul FROM spip_groupes_mots WHERE id_groupe = $id_groupe"));
+	return ($u == 'oui');
+}
+
+function supprime_mot_de_groupe($id_groupe, $table)
+{
+	if (un_seul_mot_dans_groupe($id_groupe)) {
+		$mots = spip_query("SELECT id_mot FROM spip_mots WHERE id_groupe = $id_groupe");
+		while ($r = spip_fetch_array($mots))
+			spip_query("DELETE FROM spip_mots_$table WHERE id_mot=" .
+				   $r['id_mot']);
+	}
+}
+
 /*
  * Affiche la liste des mots-cles associes a l'objet
  * specifie, plus le formulaire d'ajout de mot-cle
diff --git a/ecrire/mots_edit.php3 b/ecrire/mots_edit.php3
index 42ee8a2c75e3ee777a4db65f9c01fd5dd776272d..5a5ea4d83eafb04d06308ec1ac9163c29550ef40 100644
--- a/ecrire/mots_edit.php3
+++ b/ecrire/mots_edit.php3
@@ -12,6 +12,7 @@
 
 
 include ("inc.php3");
+include_ecrire ("inc_mots.php3");
 include_ecrire ("inc_logos.php3");
 include_ecrire ("inc_sites.php3");
 include_ecrire ("inc_abstract_sql.php3");
@@ -30,11 +31,12 @@ if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
 
 	if (strval($titre_mot)!='') {
 		if ($new == 'oui' && $id_groupe) {
-		  $id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)");
+			$id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)");
 
-			// ajouter le mot a l'article
-			if (settype($ajouter_id_article, 'integer') AND ($ajouter_id_article>0))
-				spip_query("INSERT INTO spip_mots_$table (id_mot, $id_table) VALUES ($id_mot, $ajouter_id_article)");
+			$ajouter_id_article = intval($ajouter_id_article);
+			if ($ajouter_id_article) 
+				supprime_mot_de_groupe($id_groupe, $table);
+			spip_query("INSERT INTO spip_mots_$table (id_mot, $id_table) VALUES ($id_mot, $ajouter_id_article)");
 		}
 
 		$titre_mot = addslashes($titre_mot);