Index: admin/_charte.php
===================================================================
--- admin/_charte.php	(revision 2111)
+++ admin/_charte.php	(revision 2160)
@@ -23,5 +23,5 @@
 	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 	<title>Bibliothèque de styles - Dotclear - 2.6</title>
-	<link rel="icon" type="image/png" href="images/favicon.png" />
+	<link rel="icon" type="image/png" href="images/favicon96-login.png" />
 	<!--[if lt IE 9]>
 	<script type="text/javascript" src="js/ie7/IE9.js"></script>
@@ -158,5 +158,5 @@
 						</div><!--
 						--><div class="two-boxes even">
-							<p><span class="step">2</span> S'il n'y a que deux boîtes, une autre class n'est pas nécessaire. S'il y en a plusieurs, il est conseillé de leur attribuer alternativement les class <code>"odd"</code> et <code>"even"</code> pour que les marges se placent correctement.</p>
+							<p><span class="step">2</span> On peut assortir une boîte des class <code>"odd"</code> (nothing left) et <code>"even"</code> pour que les marges se placent correctement.</p>
 						</div><!--
 						--><div class="two-boxes odd">
Index: admin/auth.php
===================================================================
--- admin/auth.php	(revision 2143)
+++ admin/auth.php	(revision 2160)
@@ -268,5 +268,7 @@
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title><?php echo html::escapeHTML(DC_VENDOR_NAME); ?></title>
-  <link rel="icon" type="image/png" href="images/favicon-off.png" />
+  <link rel="icon" type="image/png" href="images/favicon96-logout.png" />
+  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+
   
 <?php
Index: admin/blog.php
===================================================================
--- admin/blog.php	(revision 1615)
+++ admin/blog.php	(revision 2166)
@@ -72,5 +72,5 @@
 				__('System') => '',
 				__('Blogs') => 'blogs.php',
-				'<span class="page-title">'.__('New blog').'</span>' => ''
+				__('New blog') => ''
 			))
 	);
Index: admin/blog_del.php
===================================================================
--- admin/blog_del.php	(revision 1733)
+++ admin/blog_del.php	(revision 2166)
@@ -54,5 +54,5 @@
 			__('System') => '',
 			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('Delete a blog').'</span>' => ''
+			__('Delete a blog') => ''
 		))
 );
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 2028)
+++ admin/blog_pref.php	(revision 2166)
@@ -270,6 +270,7 @@
 		array(
 			html::escapeHTML($blog_name) => '',
-			'<span class="page-title">'.__('Blog settings').'</span>' => ''
-		));
+			__('Blog settings') => ''
+		)
+	);
 } else {
 	$breadcrumb = dcPage::breadcrumb(
@@ -277,5 +278,5 @@
 			__('System') => '',
 			__('Blogs') => 'blogs.php',
-			'<span class="page-title">'.__('Blog settings').' : '.html::escapeHTML($blog_name).'</span>' => ''
+			__('Blog settings').' : '.html::escapeHTML($blog_name) => ''
 		));
 }
Index: admin/blog_theme.php
===================================================================
--- admin/blog_theme.php	(revision 1553)
+++ admin/blog_theme.php	(revision 2166)
@@ -212,5 +212,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blog appearance').'</span>' => ''
+			__('Blog appearance') => ''
 		));
 } else {
@@ -219,5 +219,5 @@
 			html::escapeHTML($core->blog->name) => '',
 			__('Blog appearance') => 'blog_theme.php',
-			'<span class="page-title">'.__('Theme configuration').'</span>' => ''
+			__('Theme configuration') => ''
 		));
 }
Index: admin/blogs.php
===================================================================
--- admin/blogs.php	(revision 2137)
+++ admin/blogs.php	(revision 2166)
@@ -73,5 +73,5 @@
 -------------------------------------------------------- */
 
-$form_filter_title = __('Filter blogs list and display options');
+$form_filter_title = __('Show filters and display options');
 $starting_script  = dcPage::jsLoad('js/filter-controls.js');
 $starting_script .=
@@ -80,5 +80,5 @@
 	dcPage::jsVar('dotclear.msg.show_filters', $show_filters ? 'true':'false')."\n".
 	dcPage::jsVar('dotclear.msg.filter_posts_list',$form_filter_title)."\n".
-	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel the filter'))."\n".
+	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel filters and display options'))."\n".
 	"//]]>".
 	"</script>";
@@ -88,5 +88,5 @@
 		array(
 			__('System') => '',
-			'<span class="page-title">'.__('List of blogs').'</span>' => ''
+			__('List of blogs')
 		))
 );
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 2125)
+++ admin/categories.php	(revision 2166)
@@ -107,5 +107,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Categories').'</span>' => ''
+			__('Categories') => ''
 		))
 );
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 2117)
+++ admin/category.php	(revision 2166)
@@ -166,5 +166,5 @@
 	}
 }
-$elements['<span class="page-title">'.$title.'</span>'] = '';
+$elements[$title] = '';
 
 dcPage::open($title,
Index: admin/comment.php
===================================================================
--- admin/comment.php	(revision 1972)
+++ admin/comment.php	(revision 2166)
@@ -164,5 +164,5 @@
 			html::escapeHTML($core->blog->name) => '',
 			html::escapeHTML($post_title) => $core->getPostAdminURL($post_type,$post_id).'&amp;co=1#c'.$comment_id,
-			'<span class="page-title">'.__('Edit comment').'</span>' => ''
+			__('Edit comment') => ''
 		));
 } else {
@@ -171,5 +171,5 @@
 			html::escapeHTML($core->blog->name) => '',
 			html::escapeHTML($post_title) => $core->getPostAdminURL($post_type,$post_id),
-			'<span class="page-title">'.__('Edit comment').'</span>' => ''
+			__('Edit comment') => ''
 		));
 }
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 2136)
+++ admin/comments.php	(revision 2166)
@@ -153,5 +153,5 @@
 -------------------------------------------------------- */
 
-$form_filter_title = __('Filter comments, trackbacks list and display options');
+$form_filter_title = __('Show filters and display options');
 $starting_script  = dcPage::jsLoad('js/_comments.js');
 $starting_script .= dcPage::jsLoad('js/filter-controls.js');
@@ -161,5 +161,5 @@
 	dcPage::jsVar('dotclear.msg.show_filters', $show_filters ? 'true':'false')."\n".
 	dcPage::jsVar('dotclear.msg.filter_posts_list',$form_filter_title)."\n".
-	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel the filter'))."\n".
+	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel filters and display options'))."\n".
 	"//]]>".
 	"</script>";
@@ -169,5 +169,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Comments and trackbacks').'</span>' => ''
+			__('Comments and trackbacks') => ''
 		))
 );
Index: admin/help.php
===================================================================
--- admin/help.php	(revision 2074)
+++ admin/help.php	(revision 2166)
@@ -77,10 +77,10 @@
 		array(
 			__('Global help') => 'help.php',
-			'<span class="page-title">'.$content_array['title'].'</span>' => ''
+			$content_array['title'] => ''
 		));
 } else {
 	$breadcrumb = dcPage::breadcrumb(
 		array(
-			'<span class="page-title">'.__('Global help').'</span>' => ''
+			__('Global help') => ''
 		));
 }
Index: admin/index.php
===================================================================
--- admin/index.php	(revision 2116)
+++ admin/index.php	(revision 2166)
@@ -205,7 +205,8 @@
 	dcPage::breadcrumb(
 		array(
-		'<span class="page-title">'.__('Dashboard').' : '.html::escapeHTML($core->blog->name).'</span>' => ''
+		__('Dashboard').' : '.html::escapeHTML($core->blog->name) => ''
 		),
-		false)
+		array('home_link' =>false)
+	)
 );
 
@@ -228,5 +229,5 @@
 }
 
-if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->blog_count > 1) {
+if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->getBlogCount() > 1) {
 	echo
 	'<p><a href="index.php?default_blog=1" class="button">'.__('Make this blog my default blog').'</a></p>';
Index: admin/js/jquery/jquery.pageTabs.js
===================================================================
--- admin/js/jquery/jquery.pageTabs.js	(revision 2113)
+++ admin/js/jquery/jquery.pageTabs.js	(revision 2186)
@@ -16,5 +16,5 @@
 
 		if (hash !== undefined && hash) {
-			$('ul li a[href$="#'+hash+'"]').parent().trigger('click');
+			window.scrollTo(0,0);
 			active_tab = hash;
 		} else if (active_tab == '') { // open first part
@@ -72,4 +72,8 @@
 	
 	$.pageTabs.clickTab = function(tab) {
+		if (tab=='') {
+			tab = getHash($('ul li a', '.'+$.pageTabs.options.containerClass+':eq(0)').attr('href'));
+		}
+
 		$('ul li a', '.'+$.pageTabs.options.containerClass).filter(function() {
 			return getHash($(this).attr('href'))==tab;
Index: admin/js/jsToolBar/jsToolBar.wysiwyg.js
===================================================================
--- admin/js/jsToolBar/jsToolBar.wysiwyg.js	(revision 2101)
+++ admin/js/jsToolBar/jsToolBar.wysiwyg.js	(revision 2155)
@@ -89,5 +89,5 @@
 			var idoc = This.iwin.document;
 			var para = idoc.createElement('p');
-			para.appendChild(idoc.createTextNode(''));
+			para.appendChild(idoc.createElement('br'));
 			while (idoc.body.hasChildNodes()) {
 				idoc.body.removeChild(idoc.body.lastChild);
Index: admin/langs.php
===================================================================
--- admin/langs.php	(revision 2007)
+++ admin/langs.php	(revision 2166)
@@ -133,5 +133,5 @@
 	array(
 		__('System') => '',
-		'<span class="page-title">'.__('Languages management').'</span>' => ''
+		__('Languages management') => ''
 	))
 );
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 2099)
+++ admin/media.php	(revision 2167)
@@ -212,6 +212,8 @@
 				html::escapeHTML($core->blog->name) => '',
 				__('Media manager') => '',
-				'<span class="page-title">'.__('confirm removal').'</span>' => ''
-			),!$popup)
+				__('confirm removal') => ''
+			),
+			array('home_link' => !$popup)
+		)
 	);
 	
@@ -240,6 +242,8 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Media manager').'</span>' => ''
-		),!$popup);
+			__('Media manager') => ''
+		),
+		array('home_link' => !$popup)
+	);
 } else {
 	$breadcrumb_media = $core->media->breadCrumb(html::escapeURL($page_url).'&amp;d=%s','<span class="page-title">%s</span>');
@@ -248,6 +252,8 @@
 			array(
 				html::escapeHTML($core->blog->name) => '',
-				'<span class="page-title">'.__('Media manager').'</span>' => ''
-			),!$popup);
+				__('Media manager') => ''
+			),
+			array('home_link' => !$popup)
+		);
 	} else {
 		$breadcrumb = dcPage::breadcrumb(
@@ -256,5 +262,10 @@
 				__('Media manager') => html::escapeURL($page_url.'&d='),
 				$breadcrumb_media => ''
-			),!$popup);
+			),
+			array(
+				'home_link' => !$popup,
+				'hl' => false
+			)
+		);
 	}
 }
@@ -409,5 +420,5 @@
 {
 	echo
-	'<div class="two-boxes fieldset">';	
+	'<div class="two-boxes fieldset even">';	
 	if ($user_ui_enhanceduploader) {
 		echo
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 2106)
+++ admin/media_item.php	(revision 2167)
@@ -206,5 +206,10 @@
 			__('Media manager') => html::escapeURL($media_page_url),
 			$core->media->breadCrumb(html::escapeURL($media_page_url).'&amp;d=%s').'<span class="page-title">'.$file->basename.'</span>' => ''
-		),!$popup)
+		),
+		array(
+			'home_link' => !$popup,
+			'hl' => false
+		)
+	)
 );
 
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 1358)
+++ admin/plugin.php	(revision 2166)
@@ -85,5 +85,5 @@
 			array(
 				__('System') => '',
-				'<span class="page-title">'.__('Plugin not found').'</span>' => ''
+				__('Plugin not found') => ''
 			))
 	);
Index: admin/plugins.php
===================================================================
--- admin/plugins.php	(revision 2007)
+++ admin/plugins.php	(revision 2166)
@@ -195,5 +195,5 @@
 		array(
 			__('System') => '',
-			'<span class="page-title">'.__('Plugins management').'</span>' => ''
+			__('Plugins management') => ''
 		))
 );
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 2142)
+++ admin/post.php	(revision 2181)
@@ -298,6 +298,6 @@
 			# --BEHAVIOR-- adminAfterPostUpdate
 			$core->callBehavior('adminAfterPostUpdate',$cur,$post_id);
-			
-			http::redirect('post.php?id='.$post_id.'&upd=1');
+			dcPage::addSuccessNotice (sprintf('The post "%s" has been successfully updated',html::escapeHTML($cur->post_title)));
+			http::redirect('post.php?id='.$post_id);
 		}
 		catch (Exception $e)
@@ -385,5 +385,5 @@
 			html::escapeHTML($core->blog->name) => '',
 			__('Entries') => 'posts.php',
-			'<span class="page-title">'.($post_id ? $page_title_edit : $page_title).'</span>' => ''
+			($post_id ? $page_title_edit : $page_title) => ''
 		))
 );
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 2136)
+++ admin/posts.php	(revision 2166)
@@ -213,5 +213,5 @@
 -------------------------------------------------------- */
 
-$form_filter_title = __('Filter users list and display options');
+$form_filter_title = __('Show filters and display options');
 $starting_script  = dcPage::jsLoad('js/_posts_list.js');
 $starting_script .= dcPage::jsLoad('js/filter-controls.js');
@@ -221,5 +221,5 @@
 	dcPage::jsVar('dotclear.msg.show_filters', $show_filters ? 'true':'false')."\n".
 	dcPage::jsVar('dotclear.msg.filter_posts_list',$form_filter_title)."\n".
-	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel the filter'))."\n".
+	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel filters and display options'))."\n".
 	"//]]>".
 	"</script>";
@@ -229,5 +229,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Entries').'</span>' => ''
+			__('Entries') => ''
 		))
 );
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 2021)
+++ admin/preferences.php	(revision 2166)
@@ -382,5 +382,5 @@
 	array(
 		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.$page_title.'</span>' => ''
+		$page_title => ''
 	))
 );
@@ -543,5 +543,5 @@
 echo '<h3>'.__('My dashboard').'</h3>';
 
-echo '<form action="preferences.php" method="post" id="favs-form" class="two-boxes">';
+echo '<form action="preferences.php" method="post" id="favs-form" class="two-boxes odd">';
 
 echo '<div id="my-favs" class="fieldset"><h4>'.__('My favorites').'</h4>';
Index: admin/search.php
===================================================================
--- admin/search.php	(revision 1912)
+++ admin/search.php	(revision 2166)
@@ -74,5 +74,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Search').'</span>' => ''
+			__('Search') => ''
 		))
 );
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 2142)
+++ admin/style/default.css	(revision 2152)
@@ -149,51 +149,29 @@
 		}
 /* ------------------------------------------------- layout: optionnal one/two-boxes */
-.one-box, .two-boxes, .three-boxes, .box {
-	margin-bottom: 1em;
-	}
 .one-box {
 	text-align: justify;
 	}
+.two-boxes, .three-boxes, .box {
+	display: inline-block;
+	vertical-align: top;
+	margin: 0 1.5% 1em;
+	-moz-box-sizing: border-box; 
+	-webkit-box-sizing: border-box; 
+	box-sizing: border-box;	
+	}
 .two-boxes {
 	width: 47%;
-	display: inline-block;
-	vertical-align: top;
-	margin-right: 2%;
-	-moz-box-sizing: border-box; 
-	-webkit-box-sizing: border-box; 
-	box-sizing: border-box;
-	}
-	.two-boxes:first-child, .two-boxes.odd, .two-boxes.odd:last-child {
-		margin-right: 3%;
-		margin-left: 0;
-		}
-	.two-boxes.even:last-child, .two-boxes.even {
-		margin-left: 3%;
-		margin-right: 0;
-		}
+	}
 .three-boxes {
 	width: 30%;
-	display: inline-block;
-	vertical-align: top;
-	margin-left: 1.5%;
-	margin-right: 1.5%; 
-	-moz-box-sizing: border-box; 
-	-webkit-box-sizing: border-box; 
-	box-sizing: border-box;
-	}
-	.three-boxes:first-child, .three-boxes.first-child {
-		margin-left: 0;
-		}
-	.three-boxes:last-child, .three-boxes.last-child {
-		margin-right: 0;
-		}
-/* boîtes intérieures distribuées horizontalement */
+	}
 .box {
-	display: inline-block;
-	vertical-align: top;
-	margin-right: 3%; 
-	text-align: left;
-	}
-.box:last-child {
+	margin-left: 0;
+	margin-right: 0;
+	}
+.odd {
+	margin-left: 0;
+	}
+.even {
 	margin-right: 0;
 	}
@@ -448,4 +426,7 @@
 h1 a:link, h1 a:visited {
 	border:	none;
+	}
+.discrete a {
+	color: #333;
 	}
 /* ----------------------------------------------------------------------------
@@ -1474,8 +1455,8 @@
 		}
 		.box.small {
-			width: 300px;
+			width: 320px;
 			}
 		.box.medium {
-			width: 640px;
+			width: 660px;
 			}
 		.box.large {
@@ -2394,4 +2375,44 @@
 	display: block;
 	}
+/* ---------------------------------------------- Couleurs ajoutées via javascript	
+/* color-picker.js */
+.color-color-picker {
+	border: 1px solid #000;
+	width: 195px;
+	background: #fff;
+	}
+/* _blog_theme.js */
+.select-button {
+	font-weight: bold;
+	}
+/* _media_item.js */
+.color-div {
+	border: 1px solid #ccc;
+	}
+/* fadings ('color' est utilisé comme variable, pas comme text color) */
+.colorBeginPassword, .colorBeginValidatorErr, .colorBeginUserMail {
+	color: #fff;
+	}
+.colorEndPassword, .colorEndError, .colorEndValidatorErr, .colorEndUserMail {
+	color: #ffbaba;
+	}
+.colorBeginMessage {
+	color: #ccc;
+	}
+.colorEndMessage, .colorBeginValidatorMsg {
+	color: #676e78;
+	}
+.colorBeginError {
+	color: #ffdec8;
+	}
+.colorBeginSuccess {
+	color: #9BCA1C;
+	}
+.colorEndSuccess {
+	color: #bee74b;
+	}
+ .colorEndValidatorMsg {
+	color: #ffcc00;
+	}
 /* ------------------------------------------------------------------------------------
 															UN POIL DE MEDIA QUERIES
@@ -2433,8 +2454,11 @@
 	#top-info-user a.active {
 		padding: 2px 8px;
+		background: #999;
+		color: #FFF;
+		border-width: 0;
+		-webkit-border-radius: 6px;
+		        border-radius: 6px;
 		} 
 	.three-boxes, .three-boxes .box,
-	.three-boxes:first-child, .three-boxes.first-child,
-	.three-boxes:last-child, .three-boxes.last-child,
 	.two-cols .col70, .two-cols .col30 {
 		width: 100%;
@@ -2457,8 +2481,5 @@
 		top: 77px;
 		}
-	.one-box, .two-boxes,
-	.one-box .box, .two-boxes .box, .two-boxes.odd, .two-boxes.even,
-	.two-boxes:first-child, .two-boxes.odd, .two-boxes.odd:last-child,
-	.two-boxes.even:last-child, .two-boxes.even,
+	.one-box, .two-boxes, .two-boxes.odd, .two-boxes.even, .box,
 	.two-cols .col {
 		width: 100%;
@@ -2493,5 +2514,5 @@
 		display: inline;
 		}
-	#content {
+	#content, .hide-mm #content {
 		margin: 0;
 		padding: 0 .5em !important;
@@ -2502,14 +2523,14 @@
 	#main #content > h2 {
 		margin: 0;
-		padding: 6px 0;
+		padding: 6px 30px 6px 0;
 		}
 	#dashboard-boxes .box.medium,
 	#dashboard-boxes .box.small,
 	#dashboard-boxes .box.large {
-		width: 90%;
+		width: 100%;
 		margin: 10px auto;
 		}
 	}
-@media screen and (max-width: 500px) {
+@media screen and (max-width: 420px) {
 	h1, h1 a {
 		padding: 0;
@@ -2519,10 +2540,10 @@
 		display: none;
 		}
+	#top-info-blog {
+		margin-bottom: .5em;
+		max-width: 75%;
+		}
 	#top-info-blog select {
 		margin-bottom: .5em;
-		margin-right: 0 !important;
-		}
-	#top-info-blog p {
-		display: block;
 		}
 	#icons p {
@@ -2533,42 +2554,2 @@
 		}
 	}
-/* ---------------------------------------------- Couleurs ajoutées via javascript	
-/* color-picker.js */
-.color-color-picker {
-	border: 1px solid #000;
-	width: 195px;
-	background: #fff;
-	}
-/* _blog_theme.js */
-.select-button {
-	font-weight: bold;
-	}
-/* _media_item.js */
-.color-div {
-	border: 1px solid #ccc;
-	}
-/* fadings ('color' est utilisé comme variable, pas comme text color) */
-.colorBeginPassword, .colorBeginValidatorErr, .colorBeginUserMail {
-	color: #fff;
-	}
-.colorEndPassword, .colorEndError, .colorEndValidatorErr, .colorEndUserMail {
-	color: #ffbaba;
-	}
-.colorBeginMessage {
-	color: #ccc;
-	}
-.colorEndMessage, .colorBeginValidatorMsg {
-	color: #676e78;
-	}
-.colorBeginError {
-	color: #ffdec8;
-	}
-.colorBeginSuccess {
-	color: #9BCA1C;
-	}
-.colorEndSuccess {
-	color: #bee74b;
-	}
- .colorEndValidatorMsg {
-	color: #ffcc00;
-	}
Index: admin/update.php
===================================================================
--- admin/update.php	(revision 1792)
+++ admin/update.php	(revision 2166)
@@ -178,5 +178,5 @@
 		array(
 			__('System') => '',
-			'<span class="page-title">'.__('Dotclear update').'</span>' => ''
+			__('Dotclear update') => ''
 		))
 );
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 1719)
+++ admin/user.php	(revision 2166)
@@ -186,5 +186,5 @@
 			__('System') => '',
 			__('Users') => 'users.php',
-			'<span class="page-title">'.$page_title.'</span>' => ''
+			$page_title => ''
 		))
 );
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 2137)
+++ admin/users.php	(revision 2166)
@@ -93,5 +93,5 @@
 -------------------------------------------------------- */
 
-$form_filter_title = __('Filter users list and display options');
+$form_filter_title = __('Show filters and display options');
 $starting_script  = dcPage::jsLoad('js/_users.js');
 $starting_script .= dcPage::jsLoad('js/filter-controls.js');
@@ -101,5 +101,5 @@
 	dcPage::jsVar('dotclear.msg.show_filters', $show_filters ? 'true':'false')."\n".
 	dcPage::jsVar('dotclear.msg.filter_posts_list',$form_filter_title)."\n".
-	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel the filter'))."\n".
+	dcPage::jsVar('dotclear.msg.cancel_the_filter',__('Cancel filters and display options'))."\n".
 	"//]]>".
 	"</script>";
@@ -109,5 +109,5 @@
 		array(
 			__('System') => '',
-			'<span class="page-title">'.__('Users').'</span>' => ''
+			__('Users') => ''
 		))
 );
Index: admin/users_actions.php
===================================================================
--- admin/users_actions.php	(revision 2108)
+++ admin/users_actions.php	(revision 2166)
@@ -136,5 +136,5 @@
 			__('System') => '',
 			__('Users') => 'users.php',
-			'<span class="page-title">'.__('Permissions').'</span>' => ''
+			__('Permissions') => ''
 		));
 } else {
@@ -143,5 +143,5 @@
 			__('System') => '',
 			__('Users') => 'users.php',
-			'<span class="page-title">'.__('Actions').'</span>' => ''
+			__('Actions') => ''
 		));
 }
Index: inc/admin/actions/class.dcaction.php
===================================================================
--- inc/admin/actions/class.dcaction.php	(revision 2072)
+++ inc/admin/actions/class.dcaction.php	(revision 2169)
@@ -225,5 +225,5 @@
      * @return string the redirection url
      */
-	public function getRedirection($params=array(),$with_selected_entries=false) {
+	public function getRedirection($with_selected_entries=false,$params=array()) {
 		$redir_args = array_merge($params,$this->redir_args);
 		if ($with_selected_entries) {
@@ -240,6 +240,6 @@
      * @access public
      */
-	public function redirect($params=array(),$with_selected_entries=false) {
-		http::redirect($this->getRedirection($params,$with_selected_entries));
+	public function redirect($with_selected_entries=false,$params=array()) {
+		http::redirect($this->getRedirection($with_selected_entries,$params));
 		exit;
 	}	
Index: inc/admin/actions/class.dcactioncomments.php
===================================================================
--- inc/admin/actions/class.dcactioncomments.php	(revision 2075)
+++ inc/admin/actions/class.dcactioncomments.php	(revision 2169)
@@ -46,5 +46,5 @@
 
 		}
-		echo '<p><a class="back" href="'.$this->getRedirection(array(),true).'">'.__('Back to comments list').'</a></p>';
+		echo '<p><a class="back" href="'.$this->getRedirection(true).'">'.__('Back to comments list').'</a></p>';
 	}
 	
@@ -59,5 +59,5 @@
 				html::escapeHTML($this->core->blog->name) => '',
 				__('Comments') => 'comments.php',
-				'<span class="page-title">'.__('Comments actions').'</span>' => ''
+				__('Comments actions') => ''
 			))
 		);
@@ -149,5 +149,5 @@
 		
 		$core->blog->updCommentsStatus($co_ids,$status);
-		$ap->redirect(array('upd'=>1),true);
+		$ap->redirect(true,array('upd'=>1));
 	}
 
@@ -168,5 +168,5 @@
 		
 		$core->blog->delComments($co_ids);
-		$ap->redirect(array('del'=>1), false);
+		$ap->redirect(false,array('del'=>1));
 	}
 }
Index: inc/admin/actions/class.dcactionposts.php
===================================================================
--- inc/admin/actions/class.dcactionposts.php	(revision 2072)
+++ inc/admin/actions/class.dcactionposts.php	(revision 2181)
@@ -44,5 +44,5 @@
 			);
 		}
-		echo '<p><a class="back" href="'.$this->getRedirection(array(),true).'">'.__('Back to entries list').'</a></p>';
+		echo '<p><a class="back" href="'.$this->getRedirection(true).'">'.__('Back to entries list').'</a></p>';
 	}
 	
@@ -60,6 +60,6 @@
 			array(
 				html::escapeHTML($this->core->blog->name) => '',
-				$this->getCallerTitle() => $this->getRedirection(array(),true),
-				'<span class="page-title">'.__('Entries actions').'</span>' => ''
+				$this->getCallerTitle() => $this->getRedirection(true),
+				__('Entries actions') => ''
 			))
 		);
@@ -159,6 +159,14 @@
 		}
 		$core->blog->updPostsStatus($posts_ids,$status);
-		
-		$ap->redirect(array('upd' => 1),true);
+		dcPage::addSuccessNotice(sprintf(
+			__(
+				'%d entry has been successfully updated to status : "%s"',
+				'%d entries have been successfully updated to status : "%s"',
+				count($posts_ids)
+			),
+			count($posts_ids),
+			$core->blog->getPostStatus($status))
+		);
+		$ap->redirect(true);
 	}
 	
@@ -170,6 +178,24 @@
 		$action = $ap->getAction();
 		$core->blog->updPostsSelected($posts_ids,$action == 'selected');
-		
-		$ap->redirect(array('upd' => 1),true);
+		if ($action == 'selected') {
+			dcPage::addSuccessNotice(sprintf(
+				__(
+					'%d entry has been successfully marked as selected',
+					'%d entries have been successfully marked as selected',
+					count($posts_ids)
+				),
+				count($posts_ids))
+			);
+		} else {
+			dcPage::addSuccessNotice(sprintf(
+				__(
+					'%d entry has been successfully marked as unselected',
+					'%d entries have been successfully marked as unselected',
+					count($posts_ids)
+				),
+				count($posts_ids))
+			);
+		}
+		$ap->redirect(true);
 	}
 	
@@ -191,6 +217,14 @@
 		
 		$core->blog->delPosts($posts_ids);
+		dcPage::addSuccessNotice(sprintf(
+			__(
+				'%d entry has been successfully deleted',
+				'%d entries have been successfully deleted',
+				count($posts_ids)
+			),
+			count($posts_ids))
+		);
 		
-		$ap->redirect(array('del',1),false);
+		$ap->redirect(false);
 	}
 
@@ -207,4 +241,5 @@
 				$cur_cat->cat_title = $post['new_cat_title'];
 				$cur_cat->cat_url = '';
+				$title = $cur_cat->cat_title;
 				
 				$parent_cat = !empty($post['new_cat_parent']) ? $post['new_cat_parent'] : '';
@@ -220,6 +255,16 @@
 			
 			$core->blog->updPostsCategory($posts_ids, $new_cat_id);
-			
-			$ap->redirect(array('upd'=>1),true);
+			$title = $core->blog->getCategory($new_cat_id);
+			dcPage::addSuccessNotice(sprintf(
+				__(
+					'%d entry has been successfully moved to category "%s"',
+					'%d entries have been successfully moved to category "%s"',
+					count($posts_ids)
+				),
+				count($posts_ids),
+				html::escapeHTML($title->cat_title))
+			);
+
+			$ap->redirect(true);
 		} else {
 
@@ -228,6 +273,6 @@
 					array(
 						html::escapeHTML($core->blog->name) => '',
-						$ap->getCallerTitle() => $ap->getRedirection(array(),true),
-						'<span class="page-title">'.__('Change category for this selection').'</span>' => ''
+						$ap->getCallerTitle() => $ap->getRedirection(true),
+						__('Change category for this selection') => ''
 			)));
 			# categories list
@@ -237,5 +282,5 @@
 			);			
 			echo
-			'<form action="'.$ap->getRedirection(array(),true).'" method="post">'.
+			'<form action="'.$ap->getURI().'" method="post">'.
 			$ap->getCheckboxes().
 			'<p><label for="new_cat_id" class="classic">'.__('Category:').'</label> '.
@@ -279,6 +324,16 @@
 			$cur->user_id = $new_user_id;
 			$cur->update('WHERE post_id '.$core->con->in($posts_ids));
-			
-			$ap->redirect(array('upd' => 1),true);
+			dcPage::addSuccessNotice(sprintf(
+				__(
+					'%d entry has been successfully set to user "%s"',
+					'%d entries have been successfully set to user "%s"',
+					count($posts_ids)
+				),
+				count($posts_ids),
+				html::escapeHTML($new_user_id))
+			);
+
+
+			$ap->redirect(true);
 		} else {
 			$usersList = '';
@@ -298,6 +353,6 @@
 					array(
 						html::escapeHTML($core->blog->name) => '',
-						$ap->getCallerTitle() => $ap->getRedirection(array(),true),
-						'<span class="page-title">'.__('Change author for this selection').'</span>' => '')),
+						$ap->getCallerTitle() => $ap->getRedirection(true),
+						__('Change author for this selection') => '')),
 					dcPage::jsLoad('js/jquery/jquery.autocomplete.js').
 					'<script type="text/javascript">'."\n".
@@ -309,5 +364,5 @@
 
 			echo
-			'<form action="'.$ap->getRedirection(array(),true).'" method="post">'.
+			'<form action="'.$ap->getURI().'" method="post">'.
 			$ap->getCheckboxes().
 			'<p><label for="new_auth_id" class="classic">'.__('New author (author ID):').'</label> '.
@@ -332,6 +387,14 @@
 			$cur->post_lang = $new_lang;
 			$cur->update('WHERE post_id '.$core->con->in($posts_ids));
-			
-			$ap->redirect(array('upd' => 1),true);
+			dcPage::addSuccessNotice(sprintf(
+				__(
+					'%d entry has been successfully set to language "%s"',
+					'%d entries have been successfully set to language "%s"',
+					count($posts_ids)
+				),
+				count($posts_ids),
+				html::escapeHTML(l10n::getLanguageName($new_lang)))
+			);
+			$ap->redirect(true);
 		} else {
 			$ap->beginPage(
@@ -339,6 +402,6 @@
 					array(
 						html::escapeHTML($core->blog->name) => '',
-						$ap->getCallerTitle() => $ap->getRedirection(array(),true),
-						'<span class="page-title">'.__('Change language for this selection').'</span>' => ''
+						$ap->getCallerTitle() => $ap->getRedirection(true),
+						_('Change language for this selection') => ''
 			)));
 			# lang list
@@ -359,5 +422,5 @@
 			
 			echo
-			'<form action="'.$ap->getRedirection(array(),true).'" method="post">'.
+			'<form action="'.$ap->getURI().'" method="post">'.
 			$ap->getCheckboxes().
 			
Index: inc/admin/lib.admincombos.php
===================================================================
--- inc/admin/lib.admincombos.php	(revision 2049)
+++ inc/admin/lib.admincombos.php	(revision 2154)
@@ -30,5 +30,5 @@
 	@return	<b>array</b> the combo box (form::combo -compatible format)
 	*/
-	public static function getCategoriesCombo($categories,$include_empty = true) {
+	public static function getCategoriesCombo($categories,$include_empty = true,$use_url = false) {
 		$categories_combo = array();
 		if ($include_empty) {
@@ -38,5 +38,5 @@
 			$categories_combo[] = new formSelectOption (
 				html::escapeHTML($categories->cat_title).' ('.$categories->nb_post.')',
-				$categories->cat_id,
+				($use_url ? $categories->cat_url : $categories->cat_id),
 				($categories->level-1 ? 'sub-option'.($categories->level-1) : '')
 			);
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 2113)
+++ inc/admin/lib.dc.page.php	(revision 2181)
@@ -54,5 +54,5 @@
 
 		# List of user's blogs
-		if ($core->auth->blog_count == 1 || $core->auth->blog_count > 20)
+		if ($core->auth->getBlogCount() == 1 || $core->auth->getBlogCount() > 20)
 		{
 			$blog_box =
@@ -60,5 +60,5 @@
 			html::escapeHTML($core->blog->name).'</strong>';
 
-			if ($core->auth->blog_count > 20) {
+			if ($core->auth->getBlogCount() > 20) {
 				$blog_box .= ' - <a href="blogs.php">'.__('Change blog').'</a>';
 			}
@@ -108,7 +108,8 @@
 		$user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
 		if (!$user_ui_hide_std_favicon) {
-			echo '<link rel="icon" type="image/png" href="images/favicon.png" />';
-		}
-
+  			echo 
+  			'<link rel="icon" type="image/png" href="images/favicon96-login.png" />'.
+  			'<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />';
+		}
 		echo
 		self::jsCommon().
@@ -174,6 +175,38 @@
 			'</div>';
 		}
-	}
-
+		
+		if (isset($_SESSION['notifications'])) {
+			$types = array("success" => "success", "warning" => "warning-msg");
+			$notifications = $_SESSION['notifications'];
+			foreach ($types as $type => $class) {
+				if (isset($notifications[$type])) {
+					foreach ($notifications[$type] as $n) {
+						echo self::getNotification($n,$class);
+					}
+				}
+			}
+			unset($_SESSION['notifications']);
+		}
+		
+	}
+	public static function AddNotice($type,$message) {
+		$notification = isset($_SESSION['notifications']) ? $_SESSION['notifications']:array();
+		$notification[$type][] = array('ts' => time(), 'text' => $message);
+		$_SESSION['notifications'] = $notification;
+	}
+	public static function addSuccessNotice($message) {
+		self::addNotice("success",$message);
+	}
+	public static function addWarningNotice($message) {
+		self::addNotice("warning",$message);
+	}
+	
+	protected static function getNotification($msg,$class) {
+		global $core;
+		$res = '<p class="'.$class.'">'.
+		dt::str(__('[%H:%M:%S] '),$msg['ts'],$core->auth->getInfo('user_tz')).' '.$msg['text'].
+		'</p>';
+		return $res;	
+	}
 	public static function close()
 	{
@@ -303,6 +336,9 @@
 	}
 
-	public static function breadcrumb($elements=null,$with_home_link=true,$echo=false)
-	{
+	public static function breadcrumb($elements=null,$options=array())
+	{
+		$with_home_link = isset($options['home_link'])?$options['home_link']:true;
+		$hl = isset($options['hl'])?$options['hl']:true;
+		$hl_pos = isset($options['hl_pos'])?$options['hl_pos']:-1;
 		// First item of array elements should be blog's name, System or Plugins
 		$res = '<h2>'.($with_home_link ?
@@ -310,5 +346,11 @@
 			'<img src="style/dashboard-alt.png" alt="" />');
 		$index = 0;
+		if ($hl_pos < 0) {
+			$hl_pos = count($elements)+$hl_pos;
+		}
 		foreach ($elements as $element => $url) {
+			if ($hl && $index == $hl_pos) {
+				$element = sprintf('<span class="page-title">%s</span>',$element);
+			}
 			$res .= ($with_home_link ? ($index == 1 ? ' : ' : ' &rsaquo; ') : ($index == 0 ? ' ' : ' &rsaquo; ')).
 				($url ? '<a href="'.$url.'">' : '').$element.($url ? '</a>' : '');
@@ -316,7 +358,4 @@
 		}
 		$res .= '</h2>';
-		if ($echo) {
-			echo $res;
-		}
 		return $res;
 	}
Index: inc/admin/lib.pager.php
===================================================================
--- inc/admin/lib.pager.php	(revision 2138)
+++ inc/admin/lib.pager.php	(revision 2152)
@@ -409,5 +409,5 @@
 			'<th scope="col">'.__('Date').'</th>'.
 			'<th scope="col" class="txt-center">'.__('Status').'</th>'.
-			'<th scope="col" abbr="entry">'.__('Entry title').'</th>'.
+			'<th scope="col" abbr="entry">'.__('Entry').'</th>'.
 			'</tr>%s</table></div>';
 
@@ -469,6 +469,6 @@
 		
 		$post_title = html::escapeHTML($this->rs->post_title);
-		if (mb_strlen($post_title) > 60) {
-			$post_title = mb_strcut($post_title,0,57).'...';
+		if (mb_strlen($post_title) > 70) {
+			$post_title = mb_strcut($post_title,0,67).'...';
 		}
 		$comment_title = sprintf(__('Edit the %1$s from %2$s'),
@@ -489,5 +489,5 @@
 		'<td class="nowrap count">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->comment_dt).'</td>'.
 		'<td class="nowrap status txt-center">'.$img_status.'</td>'.
-		'<td class="nowrap"><a href="'.$post_url.'">'.
+		'<td class="nowrap discrete"><a href="'.$post_url.'">'.
 		html::escapeHTML($post_title).'</a>'.
 		($this->rs->post_type != 'post' ? ' ('.html::escapeHTML($this->rs->post_type).')' : '').'</td>';
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 2062)
+++ inc/admin/prepend.php	(revision 2159)
@@ -351,5 +351,5 @@
 		preg_match('/blogs.php$/',$_SERVER['REQUEST_URI']),
 		$core->auth->isSuperAdmin() ||
-		$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1);
+		$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->getBlogCount() > 1);
 
 	if (!$user_ui_nofavmenu) {
Index: inc/core/class.dc.auth.php
===================================================================
--- inc/core/class.dc.auth.php	(revision 1179)
+++ inc/core/class.dc.auth.php	(revision 2159)
@@ -377,9 +377,5 @@
 			return $this->blogs[$blog_id];
 		}
-		
-		if ($this->blog_count === null) {
-			$this->blog_count = $this->core->getBlogs(array(),true)->f(0);
-		}
-		
+
 		if ($this->user_admin) {
 			$strReq = 'SELECT blog_id '.
@@ -404,4 +400,12 @@
 		return $this->blogs[$blog_id];
 	}
+
+    public function getBlogCount() {
+		if ($this->blog_count === null) {
+			$this->blog_count = $this->core->getBlogs(array(),true)->f(0);
+		}
+
+        return $this->blog_count;
+    }
 	
 	public function findUserBlog($blog_id=null)
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 1785)
+++ inc/dbschema/upgrade.php	(revision 2144)
@@ -14,4 +14,5 @@
 function dotclearUpgrade($core)
 {
+    $cleanup_sessions = false; // update it in a step that needed sessions to be removed
 	$version = $core->getVersion('core');
 	
@@ -344,6 +345,8 @@
 			$core->blogDefaults();
 			
-			# Drop content from session table
-			$core->con->execute('DELETE FROM '.$core->prefix.'session ');
+			# Drop content from session table if changes or if needed
+			if ($changes != 0 || $cleanup_sessions) {
+				$core->con->execute('DELETE FROM '.$core->prefix.'session ');
+			}
 			
 			# Empty templates cache directory
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 2142)
+++ locales/fr/main.po	(revision 2145)
@@ -3699,2 +3699,8 @@
 msgid "Trackbacks received"
 msgstr "Rétroliens reçus"
+
+msgid "Show filters and display options"
+msgstr "Afficher les filtres et options d'affichage"
+
+msgid "Cancel filters and display options"
+msgstr "Annuler les filtres et options d'affichage"
Index: plugins/aboutConfig/index.php
===================================================================
--- plugins/aboutConfig/index.php	(revision 2003)
+++ plugins/aboutConfig/index.php	(revision 2166)
@@ -119,5 +119,5 @@
 		__('System') => '',
 		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('about:config').'</span>' => ''
+		__('about:config') => ''
 	));
 if (!empty($_GET['upd'])) {
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 2122)
+++ plugins/antispam/index.php	(revision 2166)
@@ -127,5 +127,5 @@
 			__('Plugins') => '',
 			$page_name => $p_url,
-			'<span class="page-title">'.sprintf(__('%s filter configuration'),$filter->name).'</span>' => ''
+			sprintf(__('%s filter configuration'),$filter->name) => ''
 		));
 
@@ -139,5 +139,5 @@
 		array(
 			__('Plugins') => '',
-			'<span class="page-title">'.$page_name.'</span>' => ''
+			$page_name => ''
 		));
 
Index: plugins/blogroll/edit.php
===================================================================
--- plugins/blogroll/edit.php	(revision 2002)
+++ plugins/blogroll/edit.php	(revision 2166)
@@ -99,5 +99,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => $p_url
+			__('Blogroll') => $p_url
 		));
 ?>
Index: plugins/blogroll/index.php
===================================================================
--- plugins/blogroll/index.php	(revision 2115)
+++ plugins/blogroll/index.php	(revision 2166)
@@ -181,5 +181,5 @@
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.__('Blogroll').'</span>' => ''
+			__('Blogroll') => ''
 		));
 ?>
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 1588)
+++ plugins/blowupConfig/index.php	(revision 2166)
@@ -231,5 +231,5 @@
 		html::escapeHTML($core->blog->name) => '',
 		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Blowup configuration').'</span>' => ''
+		__('Blowup configuration') => ''
 	));
 
Index: plugins/daInstaller/index.php
===================================================================
--- plugins/daInstaller/index.php	(revision 1912)
+++ plugins/daInstaller/index.php	(revision 2166)
@@ -259,5 +259,5 @@
 	array(
 		__('System') => '',
-		'<span class="page-title">'.__('DotAddict.org Installer').'</span>' => ''
+		__('DotAddict.org Installer') => ''
 	)).
 
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 2095)
+++ plugins/importExport/index.php	(revision 2166)
@@ -78,5 +78,5 @@
 			__('Plugins') => '',
 			$title => $p_url,
-			'<span class="page-title">'.html::escapeHTML($module->name).'</span>' => ''
+			html::escapeHTML($module->name) => ''
 		));
 
@@ -92,5 +92,5 @@
 		array(
 			__('Plugins') => '',
-			'<span class="page-title">'.$title.'</span>' => ''
+			$title => ''
 		));
 
Index: plugins/maintenance/_admin.php
===================================================================
--- plugins/maintenance/_admin.php	(revision 2116)
+++ plugins/maintenance/_admin.php	(revision 2177)
@@ -128,4 +128,5 @@
 
 		$icon[0] .= '<br />'.sprintf(__('One task to execute', '%s tasks to execute', $count), $count);
+		$icon[2] = 'index.php?pf=maintenance/icon-big-update.png';
 	}
 
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 2051)
+++ plugins/maintenance/index.php	(revision 2166)
@@ -133,5 +133,5 @@
 		array(
 			__('Plugins') => '',
-			'<span class="page-title">'.__('Maintenance').'</span>' => ''
+			__('Maintenance') => ''
 		)
 	).
@@ -159,5 +159,5 @@
 			__('Plugins') => '',
 			'<a href="'.$p_url.'">'.__('Maintenance').'</a>' => '',
-			'<span class="page-title">'.html::escapeHTML($task->name()).'</span>' => ''
+			html::escapeHTML($task->name())=> ''
 		)
 	);
@@ -193,5 +193,5 @@
 		array(
 			__('Plugins') => '',
-			'<span class="page-title">'.__('Maintenance').'</span>' => ''
+			__('Maintenance') => ''
 		)
 	);
Index: plugins/pages/class.actionpage.php
===================================================================
--- plugins/pages/class.actionpage.php	(revision 2061)
+++ plugins/pages/class.actionpage.php	(revision 2169)
@@ -25,6 +25,6 @@
 			array(
 				html::escapeHTML($this->core->blog->name) => '',
-				__('Pages') => $this->getRedirection(array(),true),
-				'<span class="page-title">'.__('Pages actions').'</span>' => ''
+				__('Pages') => $this->getRedirection(true),
+				__('Pages actions') => ''
 			))
 		);
@@ -37,5 +37,5 @@
 			'</script></head><body>'.
 			$breadcrumb;
-		echo '<p><a class="back" href="'.$this->getRedirection(array(),true).'">'.__('Back to pages list').'</a></p>';
+		echo '<p><a class="back" href="'.$this->getRedirection(true).'">'.__('Back to pages list').'</a></p>';
 
 	}
@@ -80,5 +80,5 @@
 			
 		}
-		$ap->redirect(array('reo'=>1),false);
+		$ap->redirect(false,array('reo'=>1));
 	}	
 }
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 2056)
+++ plugins/pages/list.php	(revision 2166)
@@ -75,5 +75,5 @@
 	array(
 		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Pages').'</span>' => ''
+		__('Pages') => ''
 	));
 
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 1981)
+++ plugins/pages/page.php	(revision 2166)
@@ -329,5 +329,5 @@
 		html::escapeHTML($core->blog->name) => '',
 		__('Pages') => $p_url,
-		'<span class="page-title">'.$edit_entry_title.'</span>' => ''
+		$edit_entry_title => ''
 	));
 
Index: plugins/pings/index.php
===================================================================
--- plugins/pings/index.php	(revision 1930)
+++ plugins/pings/index.php	(revision 2166)
@@ -55,5 +55,5 @@
 	array(
 		__('Plugins') => '',
-		'<span class="page-title">'.__('Pings configuration').'</span>' => ''
+		__('Pings configuration') => ''
 	));
 
Index: plugins/simpleMenu/index.php
===================================================================
--- plugins/simpleMenu/index.php	(revision 2120)
+++ plugins/simpleMenu/index.php	(revision 2167)
@@ -25,10 +25,10 @@
 $categories_label = array();
 $rs = $core->blog->getCategories(array('post_type'=>'post'));
-$categories_combo = dcAdminCombos::getCategoriesCombo($rs,false);
-
+$categories_combo = dcAdminCombos::getCategoriesCombo($rs,false,true);
 $rs->moveStart();
 while ($rs->fetch()) {
-	$categories_label[$rs->cat_id] = html::escapeHTML($rs->cat_title);
-}
+	$categories_label[$rs->cat_url] = html::escapeHTML($rs->cat_title);
+}
+
 # Liste des langues utilisées
 $langs_combo = dcAdminCombos::getLangscombo(
@@ -374,12 +374,15 @@
 			html::escapeHTML($core->blog->name) => '',
 			$page_title => $p_url,
-			'<span class="page-title">'.__('Add item').'</span>' => '',
+			__('Add item') => '',
 			$step_label => ''
-		));
+		),
+		array(
+			'hl_pos' => -2)
+	);
 } else {
 	echo dcPage::breadcrumb(
 		array(
 			html::escapeHTML($core->blog->name) => '',
-			'<span class="page-title">'.$page_title.'</span>' => ''
+			$page_title => ''
 		));
 }
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 2065)
+++ plugins/tags/_admin.php	(revision 2169)
@@ -136,5 +136,5 @@
 				}
 			}
-			$ap->redirect(array('upd' => 1),true);
+			$ap->redirect(true,array('upd' => 1));
 		} 
 		else 
@@ -150,6 +150,6 @@
 					array(
 						html::escapeHTML($core->blog->name) => '',
-						__('Entries') => $ap->getRedirection(array(),true),
-						'<span class="page-title">'.__('Add tags to this selection').'</span>' => ''
+						__('Entries') => $ap->getRedirection(true),
+						__('Add tags to this selection') => ''
 				)),
 				dcPage::jsLoad('js/jquery/jquery.autocomplete.js').
@@ -201,5 +201,5 @@
 				}
 			}
-			$ap->redirect(array('upd' => 1),true);
+			$ap->redirect(true,array('upd' => 1));
 		}
 		else
@@ -228,5 +228,5 @@
 							html::escapeHTML($core->blog->name) => '',
 							__('Entries') => 'posts.php',
-							'<span class="page-title">'.__('Remove selected tags from this selection').'</span>' => ''
+							__('Remove selected tags from this selection') => ''
 			)));
 			$posts_count = count($_POST['entries']);
Index: plugins/tags/js/post.js
===================================================================
--- plugins/tags/js/post.js	(revision 1871)
+++ plugins/tags/js/post.js	(revision 2180)
@@ -26,4 +26,5 @@
 			delay: 1000,
 			multiple: true,
+			multipleSeparator: ", ",
 			matchSubset: false,
 			matchContains: true,
Index: plugins/tags/style.css
===================================================================
--- plugins/tags/style.css	(revision 2079)
+++ plugins/tags/style.css	(revision 2152)
@@ -10,10 +10,7 @@
 .tag90 { font-size: 220%; }
 .tag100 { font-size: 230%; }
-
 table.tags {
 	margin-left: 3em;
-}
-
-
+	}
 tr.tagLetter span {
 	font-size : 250%;
@@ -24,10 +21,9 @@
 	top: 0.80em;
 	left: -2ex;
-}
-
+	}
 ul.metaList {
 	margin: 0 0 1em 0;
 	padding: 0;
-}
+	}
 ul.metaList li {
 	margin: 0;
@@ -35,24 +31,22 @@
 	list-style: square;
 	list-style-position: inside;
-}
-
+	}
 a.metaRemove {
 	color : #999 !important;
 	border: none;
-}
+	}
 a.metaRemove:hover, a.metaRemove:focus {
 	color : #06c !important;
-}
-
+	}
 .addMeta a {
 	border: none;
-}
+	}
 .addMeta a:hover, .addMeta a:focus {
 	background: #fc0;
 	color: #000;
-}
+	}
 .addMeta a.metaGetMore {
 	font-weight: bold;
-}
+	}
 /* Auto Complete */
 .ac_results {
@@ -62,5 +56,5 @@
 	overflow: hidden;
 	z-index: 99999;
-}
+	}
 .ac_results ul {
 	width: 100%;
@@ -69,5 +63,5 @@
 	padding: 0;
 	margin: 0;
-}
+	}
 .ac_results li {
 	margin: 0px;
@@ -88,27 +82,23 @@
 	line-height: 16px;
 	overflow: hidden;
-}
+	}
 .ac_loading {
 	background: transparent url('index.php?pf=tags/img/loader.gif') right center no-repeat;
-}
+	}
 .ac_odd {
 	background-color: #eee;
-}
+	}
 .ac_over {
 	background-color: #06c;
 	color: white;
-}
-#post_meta_input {
-    margin: 0 0.5em 0 0;
-    width: 13em;
-}
+	}
 #post_meta_input:focus {
 	-moz-box-sizing: content-box;
-}
-#tags-edit input[type=button] {
-	width: 3.5em;
-}
+	}
+#tags-edit input[type=text] {
+	width: 11.5em;
+	}
 .tag-actions form {
 	display: inline-block;
 	margin-right: 1.5em;
-}
+	}
Index: plugins/tags/tag_posts.php
===================================================================
--- plugins/tags/tag_posts.php	(revision 2079)
+++ plugins/tags/tag_posts.php	(revision 2166)
@@ -91,5 +91,5 @@
 		html::escapeHTML($core->blog->name) => '',
 		__('Tags') => $p_url.'&amp;m=tags',
-		'<span class="page-title">'.__('Tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;'.'</span>' => ''
+		__('Tag').' &ldquo;'.html::escapeHTML($tag).'&rdquo;' => ''
 	));
 ?>
Index: plugins/tags/tags.php
===================================================================
--- plugins/tags/tags.php	(revision 2003)
+++ plugins/tags/tags.php	(revision 2166)
@@ -24,5 +24,5 @@
 	array(
 		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Tags').'</span>' => ''
+		__('Tags') => ''
 	));
 ?>
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 1382)
+++ plugins/themeEditor/index.php	(revision 2166)
@@ -91,5 +91,5 @@
 		html::escapeHTML($core->blog->name) => '',
 		__('Blog appearance') => 'blog_theme.php',
-		'<span class="page-title">'.__('Edit theme files').'</span>' => ''
+		__('Edit theme files') => ''
 	));
 ?>
Index: plugins/userPref/index.php
===================================================================
--- plugins/userPref/index.php	(revision 2003)
+++ plugins/userPref/index.php	(revision 2168)
@@ -115,5 +115,5 @@
 		__('System') => '',
 		html::escapeHTML($core->auth->userID()) => '',
-		'<span class="page-title">'.__('user:preferences').'</span>' => ''
+		__('user:preferences') => ''
 	));
 
@@ -160,5 +160,5 @@
 		'<label for="lp_nav" class="classic">'.__('Goto:').'</label> '.form::combo('lp_nav',$ws_combo).
 		' <input type="submit" value="'.__('Ok').'" id="lp_submit" />'.
-		'<input type="hidden" name="p" value="aboutConfig" />'.
+		'<input type="hidden" name="p" value="userPref" />'.
 		$core->formNonce().'</p></form>';
 }
@@ -210,5 +210,5 @@
 		'<label for="gp_nav" class="classic">'.__('Goto:').'</label> '.form::combo('gp_nav',$ws_combo).
 		' <input type="submit" value="'.__('Ok').'" id="gp_submit" />'.
-		'<input type="hidden" name="p" value="aboutConfig" />'.
+		'<input type="hidden" name="p" value="userPref" />'.
 		$core->formNonce().'</p></form>';
 }
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 1993)
+++ plugins/widgets/index.php	(revision 2166)
@@ -190,5 +190,5 @@
 	array(
 		html::escapeHTML($core->blog->name) => '',
-		'<span class="page-title">'.__('Widgets').'</span>' => ''
+		__('Widgets') => ''
 	));
 
Index: tests/functional/spec/page_tabs.js
===================================================================
--- tests/functional/spec/page_tabs.js	(revision 2113)
+++ tests/functional/spec/page_tabs.js	(revision 2162)
@@ -131,4 +131,26 @@
 		expect($('#part-user-favorites')).not.toBeVisible();
 	});
+
+	it("Must open first tab when clicking back until hash is empty", function() {
+		loadFixtures('tabs.html');
+		loadStyleFixtures('default.css');
+
+		var navigation = ['', 'user-profile', 'user-favorites'];
+		var current_index = 0;
+
+		$.pageTabs();
+		current_index++;
+		$.pageTabs.clickTab(navigation[current_index]);
+		// tab is now user-profile
+
+		// simulate back : window.history.back();
+		current_index--;
+		spyOn(jQuery.pageTabs, 'getLocationHash').andReturn(navigation[current_index]);
+		jQuery.event.trigger('hashchange');
+
+		expect($('#part-user-options')).toBeVisible();
+		expect($('#part-user-profile')).not.toBeVisible();
+		expect($('#part-user-favorites')).not.toBeVisible();
+	});
 });
 
