diff --git a/ecrire/inc/editer.php b/ecrire/inc/editer.php
index be012eb175ebae6aeb756a95439c72830b9b00b1..66e90d53046299e70c51afe141b5283822ad850d 100644
--- a/ecrire/inc/editer.php
+++ b/ecrire/inc/editer.php
@@ -20,7 +20,6 @@ function controles_md5($data, $prefixe='ctr_', $format='html'){
 		return false;
 
 	$ctr = array();
-
 	foreach ($data as $key => $val) {
 		$m = md5($val);
 		$k = $prefixe.$key;
@@ -87,7 +86,8 @@ function controler_md5(&$champs, $ctr, $type, $id, $serveur) {
 		$ctrq = sql_fetsel($ctrq, $spip_table_objet, "$id_table_objet=$id", $serveur);
 		foreach ($ctr as $key => $m) {
 			if ($m != $ctrq['ctrq_'.$key]
-			AND $champs[$key] !== $ctrq[$key]) {
+			AND $champs[$key] !== $ctrq[$key]
+			AND $ctrq['ctrq_'.$key] !== null) {
 				$conflits[$key] = array(
 					'base' => $ctrq[$key],
 					'post' => $champs[$key]
@@ -97,7 +97,6 @@ function controler_md5(&$champs, $ctr, $type, $id, $serveur) {
 		}
 	}
 
-
 	return $conflits;
 }
 
diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index 937f0d748f636604d023b0d233898fb58476b8a2..036cd43d5c46b088de15620e839fa5ba07ed00cb 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -393,7 +393,7 @@ function extra_update($type, $id, $c = false) {
 		$extra = array_merge($orig, $extra);
 	}
 
-	return serialize($extra);
+	return array_filter($extra) ? serialize($extra) : '';
 }
 
 ?>
diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php
index 41d39c6ac13befb2adf91c5ae3f4cf0f065f80ea..a446595d53085552ae618fbd34c83ea55783c6da 100644
--- a/ecrire/inc/modifier.php
+++ b/ecrire/inc/modifier.php
@@ -72,7 +72,8 @@ function modifier_contenu($type, $id, $options, $c=false, $serveur='') {
 	AND isset($_POST['extra'])
 	AND $GLOBALS['champs_extra']) {
 		include_spip('inc/extra');
-		if ($extra = extra_update($table_objet, $id, $_POST))
+		$extra = extra_update($table_objet, $id, $_POST);
+		if ($extra !== false)
 			$champs['extra'] = $extra;
 	}