diff --git a/.gitattributes b/.gitattributes
index f15d5ae2f79c48af1459d3e8b54700d0032bacab..ca0fe1fb5d7bd05e49432e738305b083acaece27 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -12,6 +12,10 @@ dist/formulaires/editer_article/charger.php -text
 dist/formulaires/editer_article/traiter.php -text
 dist/formulaires/editer_article/verifier.php -text
 dist/formulaires/editer_article_fonctions.php -text
+dist/formulaires/editer_breve.html -text
+dist/formulaires/editer_breve/charger.php -text
+dist/formulaires/editer_breve/traiter.php -text
+dist/formulaires/editer_breve/verifier.php -text
 dist/formulaires/editer_rubrique.html -text
 dist/formulaires/editer_rubrique/charger.php -text
 dist/formulaires/editer_rubrique/traiter.php -text
@@ -306,6 +310,7 @@ dist/prive/contenu/breve.html -text
 dist/prive/contenu/rubrique.html -text
 dist/prive/contenu/site.html -text
 dist/prive/editer/article.html -text
+dist/prive/editer/breve.html -text
 dist/prive/editer/rubrique.html -text
 dist/prive/infos/article.html -text
 dist/prive/infos/article_fonctions.php -text
diff --git a/dist/formulaires/editer_article_fonctions.php b/dist/formulaires/editer_article_fonctions.php
index c43ef7fb4317a75120398aa29f26ed80ca323a7a..dc10d563346f39f58a736ed6bf9960cb11622d4e 100644
--- a/dist/formulaires/editer_article_fonctions.php
+++ b/dist/formulaires/editer_article_fonctions.php
@@ -1,8 +1,4 @@
 <?php
 
-function barre_typo($id,$lang=''){
-	include_spip('inc/barre');
-	return '<div>' . afficher_barre("document.getElementById('$id')",false,$lang) . '</div>';
-}
 
 ?>
\ No newline at end of file
diff --git a/dist/formulaires/editer_breve.html b/dist/formulaires/editer_breve.html
new file mode 100644
index 0000000000000000000000000000000000000000..750b6b6e63fdc6e52791189f865707794cd5f486
--- /dev/null
+++ b/dist/formulaires/editer_breve.html
@@ -0,0 +1,59 @@
+<div class='formfx editer_breve'>
+	<br class='spacer' />
+	[<p class="formulaire_message">(#ENV*{message_ok})</p>]
+	[<p class='formulaire_erreur'>(#ENV*{message_erreur})</p>]
+	[(#ENV{editable})
+	<form method='post' action='#ENV{action}' enctype='multipart/form-data' class='noajax'>
+		[(#REM) declarer les hidden qui declencheront le service du formulaire 
+		parametre : url d'action ]
+		#ACTION_FORMULAIRE{#ENV{action}}
+	  <input type='hidden' name='id_breve' value='#ENV{id_breve}' />
+	  <fieldset>
+	  <ol class="formfx">
+	    <li class="gauche obligatoire champ_titre">
+	      <label for="titre"><:info_titre:></label>
+	      <input type='text' name='titre' id='titre' class='formo' value="[(#ENV**{titre,#REM|concat{info_nouvel_article}|_T})]"
+				[(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/>
+				[<span class='erreur'>(#ENV**{erreurs}|table_valeur{titre})</span>]
+	    </li>
+	
+	    [<li>(#VAL{entree_interieur_rubrique}|_T|concat{' ',#AIDER{brevesrub}}
+	    |chercher_rubrique{#ENV{id_rubrique},'breve',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint}})</li>]
+	
+	    <li class="haut champ_texte">
+	      <label for="text_area"><:entree_texte_breve:></label>
+	    	[(#ENV**{_texte_trop_long,''})]
+	      [(#ENV**{config}|table_valeur{afficher_barre}|?{#VAL{text_area}|barre_typo{#LANG}})]
+	      <textarea name='texte' id='text_area' class='formo barre_inserer' rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' cols='40'[
+	      (#ENV**{browser_caret,''})]>[(#ENV**{texte})]</textarea>
+				[<span class='erreur'>(#ENV**{erreurs}|table_valeur{texte})</span>	
+	    </li>]
+	  	<li>
+	    <fieldset>
+	      <legend><:entree_liens_sites:>#AIDER{breveslien}</legend><ol>
+	    <li class="gauche champ_lien_titre">
+	      <label for="lien_titre"><:info_titre:></label>
+	      <input type='text' name='lien_titre' id='lien_titre' class='forml' value="[(#ENV**{lien_titre})]" />
+				[<span class='erreur'>(#ENV**{erreurs}|table_valeur{lien_titre})</span>]
+	    </li>
+	    <li class="gauche champ_lien_url">
+	      <label for="lien_url"><:info_url:></label>
+	      <input type='text' name='lien_url' id='lien_url' class='forml' value="[(#ENV**{lien_url})]" />
+				[<span class='erreur'>(#ENV**{erreurs}|table_valeur{lien_url})</span>]
+	    </li></ol>
+	    </fieldset></li>
+	    <li class="gauche champ_statut"><label for='statut'><:entree_breve_publiee:></label>
+			<select name='statut' id='statut' size='1' class='fondl'>
+				<option value='prop'[(#ENV**{statut}|=={prop}|?{' selected="selected"'})] style='background-color: white'><:item_breve_proposee:></option>
+				<option value='refuse'[(#ENV**{statut}|=={refuse}|?{' selected="selected"'})] " class='danger'><:item_breve_refusee:></option>
+				<option value='publie'[(#ENV**{statut}|=={publie}|?{' selected="selected"'})] style='background-color: #B4E8C5'><:item_breve_validee:></option>
+			</select>#AIDER{brevesstatut}
+	    </li>
+	  </ol>
+	  </fieldset>
+	  [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+	  <!--extra-->
+	  <div style='text-align: right'><input class='fondo' type='submit' value='<:bouton_enregistrer:>' /></div>
+	</form>
+	]
+</div>
\ No newline at end of file
diff --git a/dist/formulaires/editer_breve/charger.php b/dist/formulaires/editer_breve/charger.php
new file mode 100644
index 0000000000000000000000000000000000000000..3e42dc02d58f260e27b92b00bc1bbf1629fa031c
--- /dev/null
+++ b/dist/formulaires/editer_breve/charger.php
@@ -0,0 +1,35 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2008                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+function formulaires_editer_breve_charger_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){
+	return formulaires_editer_objet_charger('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
+}
+
+// Choix par defaut des options de presentation
+function breves_edit_config($row)
+{
+	global $spip_ecran, $spip_lang, $spip_display;
+
+	$config = $GLOBALS['meta'];
+	$config['lignes'] = ($spip_ecran == "large")? 8 : 5;
+	$config['afficher_barre'] = $spip_display != 4;
+	$config['langue'] = $spip_lang;
+
+	$config['restreint'] = ($row['statut'] == 'publie');
+	return $config;
+}
+?>
\ No newline at end of file
diff --git a/dist/formulaires/editer_breve/traiter.php b/dist/formulaires/editer_breve/traiter.php
new file mode 100644
index 0000000000000000000000000000000000000000..86e3da96bb359391adce2cb7b54813613fed37ad
--- /dev/null
+++ b/dist/formulaires/editer_breve/traiter.php
@@ -0,0 +1,23 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2008                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+// http://doc.spip.org/@inc_editer_article_dist
+function formulaires_editer_breve_traiter_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){
+	return formulaires_editer_objet_traiter('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
+}
+
+?>
\ No newline at end of file
diff --git a/dist/formulaires/editer_breve/verifier.php b/dist/formulaires/editer_breve/verifier.php
new file mode 100644
index 0000000000000000000000000000000000000000..a5a2cc28251dfdd95d79b2210aff645c091fe2a9
--- /dev/null
+++ b/dist/formulaires/editer_breve/verifier.php
@@ -0,0 +1,37 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2008                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+function formulaires_editer_breve_verifier_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){
+
+	$erreurs = array();
+	if (intval($id_breve)) {
+		$conflits = controler_contenu('breve',$id_breve);
+		if (count($conflits)) {
+			foreach($conflits as $champ=>$conflit){
+				$erreurs[$champ] .= _L("ATTENTION : Ce champ a &eacute;t&eacute; modifi&eacute; par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>");
+			}
+		}
+	}
+	foreach(array('titre') as $obli){
+		if (!_request($obli))
+			$erreurs[$obli] .= _L("Cette information est obligatoire");;
+	}
+
+	return $erreurs;
+}
+
+?>
\ No newline at end of file
diff --git a/dist/prive/editer/breve.html b/dist/prive/editer/breve.html
new file mode 100644
index 0000000000000000000000000000000000000000..5eb72b2206653bb7995390d4edcb41d41d57ca34
--- /dev/null
+++ b/dist/prive/editer/breve.html
@@ -0,0 +1,5 @@
+#ENV**{icone_retour}
+[<:info_modifier_breve:>
+<h1>(#ENV{titre})</h1>]
+<hr class='fin_article_presentation' />
+#FORMULAIRE_EDITER_BREVE{#ENV{new},#ENV{id_rubrique},#ENV{lier_trad},#ENV{redirect},#ENV{config_fonc}}
\ No newline at end of file
diff --git a/dist/style_prive.html b/dist/style_prive.html
index 3ff9f5202ed001cab0a5a281741290c7e59af897..3d10af51ce47997f9d5a9223800bebc2a88494f2 100644
--- a/dist/style_prive.html
+++ b/dist/style_prive.html
@@ -240,7 +240,8 @@ table.spip_barre a img {
 table.spip_barre a:hover img { background: #FFF; border: 1px solid #CC9; }
 table.spip_barre input.barre { width: 99%; background: transparent; border: 0; color: #F57900; }
 
-
+/* cas particuliers */
+.formfx.editer_breve fieldset li.champ_statut label {width:250px;}
 	
 select.fondl { padding: 0; }
 .maj-debut:first-letter { text-transform: uppercase; }
diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php
index 90381765c21a0013dd27f5172c99f130aebf36a6..50ecb8641b82abf6b00939ab6b873154c116d687 100644
--- a/ecrire/action/editer_article.php
+++ b/ecrire/action/editer_article.php
@@ -41,6 +41,7 @@ function action_editer_article_dist() {
 		$redirect = parametre_url(urldecode(_request('redirect')),
 			'id_article', $id_article, '&') . $err;
 	
+		include_spip('inc/headers');
 		redirige_par_entete($redirect);
 	}
 	else 
diff --git a/ecrire/action/editer_breve.php b/ecrire/action/editer_breve.php
index 39a1ac8a6c15b488b793d42603ecfb21498932da..7ebf2e3a2735d64c9204edca498188ec1cce7581 100644
--- a/ecrire/action/editer_breve.php
+++ b/ecrire/action/editer_breve.php
@@ -42,11 +42,15 @@ function action_editer_breve_dist() {
 		redirige_url_ecrire();
 	}
 
-	// Rediriger le navigateur
-	$redirect = parametre_url(urldecode(_request('redirect')),
-		'id_breve', $id_breve, '&');
-
-	redirige_par_entete($redirect);
+	if (_request('redirect')) {
+		$redirect = parametre_url(urldecode(_request('redirect')),
+			'id_breve', $id_breve, '&');
+		include_spip('inc/headers');
+	
+		redirige_par_entete($redirect);
+	}
+	else 
+		return array($id_breve,'');
 }
 
 // http://doc.spip.org/@insert_breve
diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php
index 8e545bd567826883bc7abf493f7fa51c4e596c83..de0f0de617152787071b1579f92d3ef214fb63f2 100644
--- a/ecrire/action/editer_rubrique.php
+++ b/ecrire/action/editer_rubrique.php
@@ -33,6 +33,7 @@ function action_editer_rubrique_dist() {
 			urldecode(_request('redirect')),
 			'id_rubrique', $id_rubrique, '&');
 	
+		include_spip('inc/headers');
 		redirige_par_entete($redirect);
 	}
 	else 
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 68fa0cfaba12fa58e027fc82a1ff3c5d22fff00e..cfeb00bfdce907a750433040e8d84ce93c0a5d4d 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -35,7 +35,7 @@ function exec_breves_edit_args($id_breve, $id_rubrique, $new)
 	if (!$id_rubrique) {
 		$in = !$connect_id_rubrique ? ''
 		  : (' AND id_rubrique IN (' . join(',', $connect_id_rubrique) . ')');
-		$id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'',  "id_rubrique DESC", 1);		
+		$id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'',  "id_rubrique DESC", 1);
 
 		if (!autoriser('creerbrevedans','rubrique',$id_rubrique )){
 			// manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
@@ -50,7 +50,7 @@ function exec_breves_edit_args($id_breve, $id_rubrique, $new)
 	$row = false;
 	if (!( ($new!='oui' AND (!autoriser('voir','breve',$id_breve) OR !autoriser('modifier','breve', $id_breve)))
 	       OR ($new=='oui' AND !autoriser('creerbrevedans','rubrique',$id_rubrique)) )) {
-		if ($new != "oui") 
+		if ($new != "oui")
 			$row = sql_fetsel("*", "spip_breves", "id_breve=$id_breve");
 		else $row = true;
 	}
@@ -104,13 +104,23 @@ function breves_edit_ok($row, $id_breve, $id_rubrique, $new)
 		traiter_modeles("$titre$texte", true);
 		echo afficher_documents_colonne($id_breve, "breve");
 	}
-echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
-echo creer_colonne_droite('', true);
-echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
-echo debut_droite('', true);
-echo debut_cadre_formulaire("", true);
-
-
+	echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
+	echo creer_colonne_droite('', true);
+	echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>''));
+	echo debut_droite('', true);
+	echo debut_cadre_formulaire("", true);
+
+	$contexte = array(
+	'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.gif", "rien.gif",$GLOBALS['spip_lang_right']),
+	'redirect'=>generer_url_ecrire("breves_voir"),
+	'titre'=>$titre,
+	'new'=>$new == "oui"?$new:$id_breve,
+	'id_rubrique'=>$id_rubrique,
+	'config_fonc'=>'breves_edit_config'
+	);
+	$page = evaluer_fond("prive/editer/breve", $contexte, $connect);
+	echo $page['texte'];
+	/*
 if ($new != "oui") {
 	echo icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.gif", "rien.gif",$spip_lang_right);
 	echo _T('info_modifier_breve');
@@ -194,6 +204,7 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 }
 else
 	echo "<h2>"._T('info_page_interdite')."</h2>";
+	*/
 
 echo fin_cadre_formulaire(true);
 echo fin_gauche(), fin_page();
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index b4f0358130fd8d84b7461d6d041e0decca662df2..4487ba206af1d3c66d707347cc99da5675f34408 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -2478,4 +2478,9 @@ function chercher_rubrique($msg, $id_rubrique, $type, $id_secteur, $restreint){
 	return debut_cadre_couleur($logo, true, "", $msg) . $opt . $confirm .fin_cadre_couleur(true);
 }
 
+function barre_typo($id,$lang=''){
+	include_spip('inc/barre');
+	return '<div>' . afficher_barre("document.getElementById('$id')",false,$lang) . '</div>';
+}
+
 ?>
\ No newline at end of file
diff --git a/ecrire/index.php b/ecrire/index.php
index 4a0a9de348350ee41384eb53fdbd69f1bca6d0d8..1b89eb6ce22455fd376907ba13ce8ef43cce5edc 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -25,8 +25,7 @@ include_spip('inc/cookie');
 //
 
 $exec = _request('exec');
-$reinstall = _request('reinstall');
-
+$reinstall = _request('reinstall')?_request('reinstall'):($exec=='install'?'oui':NULL);
 //
 // Authentification, redefinissable
 //
@@ -126,8 +125,7 @@ define('_TRANCHES', 10);
 //
 
 // Controle de la version, sauf si on est deja en train de s'en occuper
-if ($exec!='install'
-AND !_request('reinstall')
+if (!$reinstall=='oui'
 AND !_request('var_ajaxcharset')
 AND isset($GLOBALS['meta']['version_installee'])
 AND ($GLOBALS['spip_version'] != (str_replace(',','.',$GLOBALS['meta']['version_installee']))))