Index: admin/index.php
===================================================================
--- admin/index.php	(revision 82)
+++ admin/index.php	(revision 109)
@@ -44,4 +44,35 @@
 
 # Check dashboard module prefs
+$core->auth->user_prefs->loadPrefs();
+	
+	// Set favorites menu
+	$ws = $core->auth->user_prefs->addWorkspace('favorites');
+	$count = 0;
+	foreach ($ws->dumpPrefs() as $k => $v) {
+		// User favorites only
+		if (!$v['global']) {
+			$count++;
+			$fav = unserialize($v['value']);
+			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
+				preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
+				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+		}
+	}	
+	if (!$count) {
+		// Global favorites if any
+		foreach ($ws->dumpPrefs() as $k => $v) {
+			$count++;
+			$fav = unserialize($v['value']);
+			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
+				preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
+				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+		}
+	}
+	if (!$count) {
+		// No user or global favorites, add "new entry" fav
+		$_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png',
+			preg_match('/post.php$/',$_SERVER['REQUEST_URI']),
+			$core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null);
+	}
 $core->auth->user_prefs->addWorkspace('dashboard');
 if (!$core->auth->user_prefs->dashboard->prefExists('doclinks')) {
@@ -221,5 +252,5 @@
 
 # Dashboard icons
-echo '<div id="dashboard-main"><div id="icons" class="clear">';
+echo '<div id="dashboard-main"><div id="icons">';
 foreach ($__dashboard_icons as $i)
 {
@@ -278,5 +309,5 @@
 
 # Dashboard columns
-echo '<div id="dashboard-items">';
+$dashboardItems = '';
 
 # Dotclear updates notifications
@@ -287,5 +318,5 @@
 	
 	if ($updater->getNotify() && $new_v) {
-		echo
+		$dashboardItems .=
 		'<div id="upg-notify" class="static-msg"><p>'.sprintf(__('Dotclear %s is available!'),$new_v).'</p> '.
 		'<ul><li><strong><a href="update.php">'.sprintf(__('Upgrade now'),$new_v).'</a></strong>'.
@@ -304,5 +335,5 @@
 	
 	if (count($list) > 0) {
-		echo
+		$dashboardItems .=
 		'<div id="module-errors" class="error"><p>'.__('Some plugins are installed twice:').'</p> '.
 		'<ul>'.implode("\n",$list).'</ul></div>';
@@ -312,12 +343,15 @@
 
 foreach ($__dashboard_items as $i)
-{
-	echo '<div>';
-	foreach ($i as $v) {
-		echo $v;
-	}
-	echo '</div>';
-}
-echo '</div>';
+{	
+	if ($i->count() > 0)
+	{
+		$dashboardItems .= '<div>';
+		foreach ($i as $v) {
+			$dashboardItems .= $v;
+		}
+		$dashboardItems .= '</div>';
+	}
+}
+echo ($dashboardItems ? '<div id="dashboard-items">'.$dashboardItems.'</div>' : '');
 
 dcPage::close();
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 85)
+++ inc/admin/prepend.php	(revision 106)
@@ -292,43 +292,4 @@
 		$core->auth->isSuperAdmin() ||
 		$core->auth->check('usage,contentadmin',$core->blog->id) && $core->auth->blog_count > 1);
-
-	try {
-		// Set favorites menu
-		$ws = $core->auth->user_prefs->addWorkspace('favorites');
-		$count = 0;
-		foreach ($ws->dumpPrefs() as $k => $v) {
-			// User favorites only
-			if (!$v['global']) {
-				$count++;
-				$fav = unserialize($v['value']);
-				$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-					preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
-					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
-			}
-		}	
-		if (!$count) {
-			// Global favorites if any
-			foreach ($ws->dumpPrefs() as $k => $v) {
-				$count++;
-				$fav = unserialize($v['value']);
-				$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-					preg_match('/'.$fav['url'].'(\?.*)?$/',$_SERVER['REQUEST_URI']),
-					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
-			}
-		}
-		if (!$count) {
-			// No user or global favorites, add "new entry" fav
-			$_menu['Favorites']->addItem(__('New entry'),'post.php','images/menu/edit.png',
-				preg_match('/post.php$/',$_SERVER['REQUEST_URI']),
-				$core->auth->check('usage,contentadmin',$core->blog->id),'menu-new-post',null);
-		}
-	} catch (Exception $e) {
-		$version = $core->getVersion('core');
-		if (version_compare($version,'2.3','<')) {
-			;	// Ignore lack of dc_pref table before the logout following an auto-update
-		} else {
-			$core->error->add($e->getMessage());
-		}
-	}
-}
+	}
 ?>
Index: inc/core/class.dc.prefs.php
===================================================================
--- inc/core/class.dc.prefs.php	(revision 3)
+++ inc/core/class.dc.prefs.php	(revision 106)
@@ -42,5 +42,5 @@
 		$this->table = $core->prefix.'pref';
 		$this->user_id =& $user_id;
-		$this->loadPrefs();
+		//~ $this->loadPrefs();
 	}
 	
@@ -48,5 +48,5 @@
 	Retrieves all workspaces (and their prefs) from database, with one query. 
 	*/
-	private function loadPrefs()
+	public function loadPrefs()
 	{
 		$strReq = 'SELECT user_id, pref_id, pref_value, '.
@@ -60,4 +60,5 @@
 		} catch (Exception $e) {
 			trigger_error(__('Unable to retrieve workspaces:').' '.$this->con->error(), E_USER_ERROR);
+			throw $e;
 		}
 		
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 19)
+++ inc/dbschema/upgrade.php	(revision 107)
@@ -184,4 +184,108 @@
 					$count++;
 				}
+				
+				# A bit of housecleaning for no longer needed files
+				$remfiles = array (
+					'admin/style/cat-bg.png',
+					'admin/style/footer-bg.png',
+					'admin/style/head-logo.png',
+					'admin/style/tab-bg.png',
+					'admin/style/tab-c-l.png',
+					'admin/style/tab-c-r.png',
+					'admin/style/tab-l-l.png',
+					'admin/style/tab-l-r.png',
+					'admin/style/tab-n-l.png',
+					'admin/style/tab-n-r.png',
+					'inc/clearbricks/_common.php',
+					'inc/clearbricks/common/lib.crypt.php',
+					'inc/clearbricks/common/lib.date.php',
+					'inc/clearbricks/common/lib.files.php',
+					'inc/clearbricks/common/lib.form.php',
+					'inc/clearbricks/common/lib.html.php',
+					'inc/clearbricks/common/lib.http.php',
+					'inc/clearbricks/common/lib.l10n.php',
+					'inc/clearbricks/common/lib.text.php',
+					'inc/clearbricks/common/tz.dat',
+					'inc/clearbricks/common/_main.php',
+					'inc/clearbricks/dblayer/class.cursor.php',
+					'inc/clearbricks/dblayer/class.mysql.php',
+					'inc/clearbricks/dblayer/class.pgsql.php',
+					'inc/clearbricks/dblayer/class.sqlite.php',
+					'inc/clearbricks/dblayer/dblayer.php',
+					'inc/clearbricks/dbschema/class.dbschema.php',
+					'inc/clearbricks/dbschema/class.dbstruct.php',
+					'inc/clearbricks/dbschema/class.mysql.dbschema.php',
+					'inc/clearbricks/dbschema/class.pgsql.dbschema.php',
+					'inc/clearbricks/dbschema/class.sqlite.dbschema.php',
+					'inc/clearbricks/diff/lib.diff.php',
+					'inc/clearbricks/diff/lib.unified.diff.php',
+					'inc/clearbricks/filemanager/class.filemanager.php',
+					'inc/clearbricks/html.filter/class.html.filter.php',
+					'inc/clearbricks/html.validator/class.html.validator.php',
+					'inc/clearbricks/image/class.image.meta.php',
+					'inc/clearbricks/image/class.image.tools.php',
+					'inc/clearbricks/mail/class.mail.php',
+					'inc/clearbricks/mail/class.socket.mail.php',
+					'inc/clearbricks/net/class.net.socket.php',
+					'inc/clearbricks/net.http/class.net.http.php',
+					'inc/clearbricks/net.http.feed/class.feed.parser.php',
+					'inc/clearbricks/net.http.feed/class.feed.reader.php',
+					'inc/clearbricks/net.xmlrpc/class.net.xmlrpc.php',
+					'inc/clearbricks/pager/class.pager.php',
+					'inc/clearbricks/rest/class.rest.php',
+					'inc/clearbricks/session.db/class.session.db.php',
+					'inc/clearbricks/template/class.template.php',
+					'inc/clearbricks/text.wiki2xhtml/class.wiki2xhtml.php',
+					'inc/clearbricks/url.handler/class.url.handler.php',
+					'inc/clearbricks/zip/class.unzip.php',
+					'inc/clearbricks/zip/class.zip.php',
+					'themes/default/tpl/.htaccess',
+					'themes/default/tpl/404.html',
+					'themes/default/tpl/archive.html',
+					'themes/default/tpl/archive_month.html',
+					'themes/default/tpl/category.html',
+					'themes/default/tpl/home.html',
+					'themes/default/tpl/post.html',
+					'themes/default/tpl/search.html',
+					'themes/default/tpl/tag.html',
+					'themes/default/tpl/tags.html',
+					'themes/default/tpl/user_head.html',
+					'themes/default/tpl/_flv_player.html',
+					'themes/default/tpl/_footer.html',
+					'themes/default/tpl/_head.html',
+					'themes/default/tpl/_mp3_player.html',
+					'themes/default/tpl/_top.html'
+				);
+				$remfolders = array (
+					'inc/clearbricks/common',
+					'inc/clearbricks/dblayer',
+					'inc/clearbricks/dbschema',
+					'inc/clearbricks/diff',
+					'inc/clearbricks/filemanager',
+					'inc/clearbricks/html.filter',
+					'inc/clearbricks/html.validator',
+					'inc/clearbricks/image',
+					'inc/clearbricks/mail',
+					'inc/clearbricks/net',
+					'inc/clearbricks/net.http',
+					'inc/clearbricks/net.http.feed',
+					'inc/clearbricks/net.xmlrpc',
+					'inc/clearbricks/pager',
+					'inc/clearbricks/rest',
+					'inc/clearbricks/session.db',
+					'inc/clearbricks/template',
+					'inc/clearbricks/text.wiki2xhtml',
+					'inc/clearbricks/url.handler',
+					'inc/clearbricks/zip',
+					'inc/clearbricks',
+					'themes/default/tpl'
+				);
+				
+				foreach ($remfiles as $f) {
+					@unlink(DC_ROOT.'/'.$f);
+				}
+				foreach ($remfolders as $f) {
+					@rmdir(DC_ROOT.'/'.$f);
+				}
 			}
 			
Index: locales/en/help/media.html
===================================================================
--- locales/en/help/media.html	(revision 82)
+++ locales/en/help/media.html	(revision 102)
@@ -71,5 +71,5 @@
   <li><strong>original</strong>: the original, unchanged image.</li>
 </ul>
-<p>Default size for the last 4 versions can be indicated in blog's parameters.</p>
+<p>Default size for the versions thumbnail, small and medium can be modified in your blog's parameters.</p>
 
 <h3>Add a file to an entry</h3>
Index: locales/en/help/post.html
===================================================================
--- locales/en/help/post.html	(revision 0)
+++ locales/en/help/post.html	(revision 104)
@@ -49,5 +49,5 @@
   <dd>To choose the post syntax. Wiki is a simplified syntax
   and will be converted to valid xhtml&nbsp;; Unless you have a perfect
-  understanding of html, we advise you to choose the wiki syntax.
+  understanding of xhtml, we advise you to choose the wiki syntax.
   See the Wiki syntax reference for more information.</dd>
   
Index: locales/en/help/user_pref.html
===================================================================
--- locales/en/help/user_pref.html	(revision 56)
+++ locales/en/help/user_pref.html	(revision 105)
@@ -13,5 +13,5 @@
   
   <dt>Display name</dt>
-  <dd>You can choose here how your name will be displayed under your posts.</dd>
+  <dd>You can choose here a nickname that will be displayed in your posts instead of your name and first name.</dd>
   
   <dt>Email</dt>
@@ -72,10 +72,9 @@
   Otherwise, a field allows to give them an ordering number. When you are finished, do not forget 
   to save your changes. You may also select favorites to be deleted from the list.</dd>
-  </dl>
   
   <dt>Available favorites</dt>
   <dd>All plugins allowing to be put as favorites are diplayed here. Check the corresponding boxes 
   and add them to the dashboard.</dd>
-  </dl>
+</dl>
 </body>
 </html>
Index: locales/fr/help/core_blog_pref.html
===================================================================
--- locales/fr/help/core_blog_pref.html	(revision 60)
+++ locales/fr/help/core_blog_pref.html	(revision 104)
@@ -66,10 +66,10 @@
   "formatage des dates" pour plus détails.</dd>
   
-  <dt>Laisser les commentaires ouvert durant .. jours</dt>
+  <dt>Laisser les commentaires ouverts durant .. jours</dt>
   <dd>Permet d'indiquer le nombre de jours durant lesquels les commentaires
   sont possibles sur un billet après sa publication. Aucune valeur laissera
   les commentaires toujours ouverts.</dd>
   
-  <dt>Laisser les rétroliens ouvert durant .. jours</dt>
+  <dt>Laisser les rétroliens ouverts durant .. jours</dt>
   <dd>Permet d'indiquer le nombre de jours durant lesquels les rétroliens
   sont possibles sur un billet après sa publication. Aucune valeur laissera
@@ -105,6 +105,6 @@
   page d'accueil et la première page de chaque catégorie.</dd>
   
-  <dt>Afficher des émoticones dans les billets et commentaires</dt>
-  <dd>Remplacer certains symboles comme :-) ou ;-) en image.</dd>
+  <dt>Afficher des émoticônes dans les billets et commentaires</dt>
+  <dd>Remplacer certaines suites de caractères comme :-) ou ;-) par des images.</dd>
   
   <dt>Afficher .. billets par flux de syndication</dt>
Index: locales/fr/help/core_media.html
===================================================================
--- locales/fr/help/core_media.html	(revision 98)
+++ locales/fr/help/core_media.html	(revision 102)
@@ -74,5 +74,5 @@
   <li><strong>originale</strong>&nbsp;: image originale non transformée.</li>
 </ul>
-<p>La taille par défaut des 4 dernières versions peut être indiquée dans les paramètres du blog</p>
+<p>Les tailles par défaut des versions miniature, petite et moyenne, peuvent être modifiées dans les paramètres du blog</p>
 
 <h3>Attacher un fichier à un billet</h3>
Index: locales/fr/help/core_post.html
===================================================================
--- locales/fr/help/core_post.html	(revision 0)
+++ locales/fr/help/core_post.html	(revision 104)
@@ -50,5 +50,5 @@
   <dd>Permet de choisir la syntaxe de saisie du billet. Le wiki est une syntaxe
   simplifiée et sera converti en xhtml valide ; à moins que vous maîtrisiez
-  parfaitement le HTML nous vous conseillons de la choisir de préférence.
+  parfaitement le xhtml nous vous conseillons de la choisir de préférence.
   Consultez la référence de la syntaxe Wiki pour plus
   d'informations.</dd>
Index: locales/fr/help/core_user_pref.html
===================================================================
--- locales/fr/help/core_user_pref.html	(revision 56)
+++ locales/fr/help/core_user_pref.html	(revision 105)
@@ -13,5 +13,5 @@
   
   <dt>Pseudonyme</dt>
-  <dd>Vous pouvez choisir ici le nom sous lequel vos billets seront signés.</dd>
+  <dd>Vous pouvez choisir ici le nom sous lequel vos billets seront signés. S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd>
   
   <dt>Email</dt>
@@ -34,5 +34,5 @@
   dans les champs <em>Nouveau mot de passe</em> et <em>Confirmer le mot de 
   passe</em>. Le mot de passe doit être long d'au moins 6 caractères. 
-  Si aucun mot de passe n'est donné, celui-ci ne sera pas changé.</dd>
+  Si aucun mot de passe n'est spécifié, il ne sera pas changé.</dd>
 </dl>
   
@@ -42,5 +42,5 @@
   <dd>Choix de la syntaxe par défaut pour la saisie des billets. Le wiki est une
   syntaxe simplifiée et sera converti en xhtml valide&nbsp;; à moins que vous ne
-  maîtrisiez parfaitement le HTML nous vous conseillons le choix du wiki.</dd>
+  maîtrisiez parfaitement le xhtml, nous vous conseillons le choix du wiki.</dd>
   
   <dt>État des billets par défaut</dt>
@@ -79,10 +79,9 @@
   pas d'enregistrer vos modifications. Vous pouvez aussi sélectionner les favoris à supprimer
   du tableau de bord.</dd>
-  </dl>
   
   <dt>Favoris disponibles</dt>
   <dd>Tous les plugins permettant d'être mis en favoris sont listés ici. 
   Cochez les cases correspondantes aux favoris que vous souhaitez utiliser, puis ajoutez-les.</dd>
-  </dl>
+</dl>
 </body>
 </html>
