diff --git a/wikstraktor.py b/wikstraktor.py
index 639ecd82b2c05deb8cda1121a5f6a27673a00762..9d1918d7f7d1bd00b094eae88c999a10598c7a9b 100755
--- a/wikstraktor.py
+++ b/wikstraktor.py
@@ -209,12 +209,12 @@ class Sense(SubInfo):
 		#On réinitialise les identifiants des sous-éléments
 		if not isinstance(self, SubSense):
 			Sense.reset_sub_counters()
-
+		self.merged = False
 		self.definitions = [] #liste des définitions (elles auront une langue et un texte)
 		self.subsenses = [] #liste des sous-définitions (récursif…)
 		self.examples = [] #liste des exemples (un texte obligatoire, source et url sont optionnels)
 		self.translations = [] #liste des traductions dans d'autres langues
-		self.domain = None #domaine d'usage du mot dans ce sens
+		self.domain = None #domaine d'usage du mot dans ce sens (à supprimer, cf. metadata ?)
 		self.metadata = {}
 		self.regions = set()
 		if definition != None:
@@ -314,9 +314,27 @@ class Sense(SubInfo):
 			i+=1
 		return res
 
+	def merge(self, other):
+		if self != other:
+			self.label += other.label
+		for d in other.definitions:
+			self.add_def(d)
+		for s in other.subsenses:
+			self.add_subsense(s)
+		for e in other.examples:
+			self.add_example(e)
+		for t in other.translations:
+			self.add_translation(t)
+		if self.domain == None and other.domain != None:
+			self.set_domain(other.domain) ##Pas clair, à virer (cf. metadata ?)
+		for k,v in other.metadata:
+			self.add_to_metadata(k,v)
+		for r in other.regions:
+			self.add_region(r)
+
 	def serializable(self, id = True):
 		res = {}
-		if id:
+		if id and not self.merged:
 			prefix = self.get_id()
 			Sense.reset_sub_counters()