Index: .hgsubstate
===================================================================
--- .hgsubstate	(revision 3230)
+++ .hgsubstate	(revision 3165)
@@ -1,1 +1,1 @@
-9be5ccd717f30ae129bb4acffe26d6e14a2af690 inc/libs/clearbricks
+67f64a6c2eacdb9cd8f75186d6b6e4b98a91e8ba inc/libs/clearbricks
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 3227)
+++ admin/blog_pref.php	(revision 3159)
@@ -312,6 +312,4 @@
 }
 
-$desc_editor = $core->auth->getOption('editor');
-
 dcPage::open(__('Blog settings'),
 	'<script type="text/javascript">'."\n".
@@ -324,5 +322,5 @@
 	"</script>".
 	dcPage::jsConfirmClose('blog-form').
-	$core->callBehavior('adminPostEditor',$desc_editor['xhtml'],'blog_desc',array('#blog_desc'),'xhtml').
+	$core->callBehavior('adminPostEditor').
 	dcPage::jsLoad('js/_blog_pref.js').
 
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 3210)
+++ admin/categories.php	(revision 2852)
@@ -51,5 +51,5 @@
 			$c = $core->blog->getCategory($mov_cat);
 			if ($c->isEmpty()) {
-				throw new Exception(__('Category where to move entries does not exist'));
+				throw new Exception(__('Category where to move posts does not exist'));
 			}
 			$name = $c->cat_title;
@@ -100,5 +100,5 @@
 /* Display
 -------------------------------------------------------- */
-$rs = $core->blog->getCategories();
+$rs = $core->blog->getCategories(array('post_type'=>'post'));
 
 $starting_script = "";
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 3209)
+++ admin/category.php	(revision 3024)
@@ -46,5 +46,5 @@
 
 	# Allowed parents list
-	$children = $core->blog->getCategories(array('start'=>$cat_id));
+	$children = $core->blog->getCategories(array('post_type'=>'post','start'=>$cat_id));
 	$allowed_parents = array(__('Top level')=>0);
 
@@ -54,5 +54,5 @@
 	}
 
-	$rs = $core->blog->getCategories();
+	$rs = $core->blog->getCategories(array('post_type'=>'post'));
 	while ($rs->fetch()) {
 		if (!isset($p[$rs->cat_id])) {
@@ -195,5 +195,5 @@
 if (!$cat_id)
 {
-	$rs = $core->blog->getCategories();
+	$rs = $core->blog->getCategories(array('post_type'=>'post'));
 	echo
 	'<p><label for="new_cat_parent">'.__('Parent:').' '.
Index: admin/index.php
===================================================================
--- admin/index.php	(revision 3238)
+++ admin/index.php	(revision 3189)
@@ -322,15 +322,13 @@
 echo '<div id="dashboard-main">';
 
-if (!$core->auth->user_prefs->dashboard->nofavicons) {
-	# Dashboard icons
-	echo '<div id="icons">';
-	foreach ($__dashboard_icons as $i)
-	{
-		echo
-		'<p><a href="'.$i[1].'"><img src="'.dc_admin_icon_url($i[2]).'" alt="" />'.
-		'<br /><span>'.$i[0].'</span></a></p>';
-	}
-	echo '</div>';
-}
+# Dashboard icons
+echo '<div id="icons">';
+foreach ($__dashboard_icons as $i)
+{
+	echo
+	'<p><a href="'.$i[1].'"><img src="'.dc_admin_icon_url($i[2]).'" alt="" />'.
+	'<br /><span>'.$i[0].'</span></a></p>';
+}
+echo '</div>';
 
 if ($core->auth->user_prefs->dashboard->quickentry) {
@@ -339,5 +337,5 @@
 		# Getting categories
 		$categories_combo = dcAdminCombos::getCategoriesCombo(
-			$core->blog->getCategories(array())
+			$core->blog->getCategories(array('post_type'=>'post'))
 		);
 
Index: admin/js/_blog_pref.js
===================================================================
--- admin/js/_blog_pref.js	(revision 3227)
+++ admin/js/_blog_pref.js	(revision 3005)
@@ -30,12 +30,3 @@
 		$(this).parent().next('.chosen').html($(this).find(':selected').prop('label'));
 	});
-
-	// HTML text editor
-	if ($.isFunction(jsToolBar)) {
-		$('#blog_desc').each(function() {
-			var tbWidgetText = new jsToolBar(this);
-			tbWidgetText.draw('xhtml');
-		});
-	}
-
 });
Index: admin/js/jsUpload/vendor/jquery.ui.widget.js
===================================================================
--- admin/js/jsUpload/vendor/jquery.ui.widget.js	(revision 1144)
+++ admin/js/jsUpload/vendor/jquery.ui.widget.js	(revision 1144)
@@ -0,0 +1,530 @@
+/*
+ * jQuery UI Widget 1.10.1+amd
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+(function (factory) {
+    if (typeof define === "function" && define.amd) {
+        // Register as an anonymous AMD module:
+        define(["jquery"], factory);
+    } else {
+        // Browser globals:
+        factory(jQuery);
+    }
+}(function( $, undefined ) {
+
+var uuid = 0,
+	slice = Array.prototype.slice,
+	_cleanData = $.cleanData;
+$.cleanData = function( elems ) {
+	for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+		try {
+			$( elem ).triggerHandler( "remove" );
+		// http://bugs.jquery.com/ticket/8235
+		} catch( e ) {}
+	}
+	_cleanData( elems );
+};
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+};
+
+$.widget.extend = function( target ) {
+	var input = slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = slice.call( arguments, 1 ),
+			returnValue = this;
+
+		// allow multiple hashes to be passed on init
+		options = !isMethodCall && args.length ?
+			$.widget.extend.apply( null, [ options ].concat(args) ) :
+			options;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} )._init();
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			// 1.9 BC for #7810
+			// TODO remove dual storage
+			.removeData( this.widgetName )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( value === undefined ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( value === undefined ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+			this.hoverable.removeClass( "ui-state-hover" );
+			this.focusable.removeClass( "ui-state-focus" );
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOption( "disabled", false );
+	},
+	disable: function() {
+		return this._setOption( "disabled", true );
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			// accept selectors, DOM elements
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^(\w+)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+}));
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 3209)
+++ admin/post.php	(revision 3024)
@@ -52,5 +52,5 @@
 # Getting categories
 $categories_combo = dcAdminCombos::getCategoriesCombo(
-	$core->blog->getCategories()
+	$core->blog->getCategories(array('post_type'=>'post'))
 );
 
@@ -335,5 +335,5 @@
 # Getting categories
 $categories_combo = dcAdminCombos::getCategoriesCombo(
-	$core->blog->getCategories()
+	$core->blog->getCategories(array('post_type'=>'post'))
 );
 /* DISPLAY
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 3209)
+++ admin/posts.php	(revision 3182)
@@ -17,5 +17,5 @@
 # Getting categories
 try {
-	$categories = $core->blog->getCategories();
+	$categories = $core->blog->getCategories(array('post_type'=>'post'));
 } catch (Exception $e) {
 	$core->error->add($e->getMessage());
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 3238)
+++ admin/preferences.php	(revision 3198)
@@ -35,5 +35,4 @@
 $user_dm_dcnews = $core->auth->user_prefs->dashboard->dcnews;
 $user_dm_quickentry = $core->auth->user_prefs->dashboard->quickentry;
-$user_dm_nofavicons = $core->auth->user_prefs->dashboard->nofavicons;
 
 $core->auth->user_prefs->addWorkspace('accessibility');
@@ -222,5 +221,4 @@
 		$core->auth->user_prefs->dashboard->put('dcnews',!empty($_POST['user_dm_dcnews']),'boolean');
 		$core->auth->user_prefs->dashboard->put('quickentry',!empty($_POST['user_dm_quickentry']),'boolean');
-		$core->auth->user_prefs->dashboard->put('nofavicons',empty($_POST['user_dm_nofavicons']),'boolean');
 		$core->auth->user_prefs->interface->put('iconset',(!empty($_POST['user_ui_iconset']) ? $_POST['user_ui_iconset'] : ''));
 		$core->auth->user_prefs->interface->put('nofavmenu',empty($_POST['user_ui_nofavmenu']),'boolean');
@@ -613,20 +611,14 @@
 __('Display favorites at the top of the menu').'</label></p></div>';
 
-echo
-'<div class="fieldset">'.
-'<h4>'.__('Dashboard icons').'</h4>'.
-'<p><label for="user_dm_nofavicons" class="classic">'.
-form::checkbox('user_dm_nofavicons',1,!$user_dm_nofavicons).' '.
-__('Display dashboard icons').'</label></p>';
-
 if (count($iconsets_combo) > 1) {
 	echo
+		'<div class="fieldset">'.
+		'<h4>'.__('Dashboard icons').'</h4>'.
 		'<p><label for="user_ui_iconset" class="classic">'.__('Iconset:').'</label> '.
-		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</p>';
+		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</p>'.
+		'</div>';
 } else {
 	echo '<p class="hidden">'.form::hidden('user_ui_iconset','').'</p>';
 }
-echo
-'</div>';
 
 echo
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 3224)
+++ inc/admin/lib.dc.page.php	(revision 3178)
@@ -298,8 +298,9 @@
 
 		$figure = "
-   /\_/\
-  (='.'=)
-  (\")-(\")
-  		";
+    @..@
+   (----)
+  ( >__< )
+  ^^ ~~ ^^
+		";
 
 		echo
@@ -910,5 +911,5 @@
 		"</script>\n".
 
-		self::jsLoad('js/jquery/jquery-ui.custom.js').
+		self::jsLoad('js/jsUpload/vendor/jquery.ui.widget.js').
 		self::jsLoad('js/jsUpload/tmpl.js').
 		self::jsLoad('js/jsUpload/template-upload.js').
Index: inc/admin/lib.pager.php
===================================================================
--- inc/admin/lib.pager.php	(revision 3239)
+++ inc/admin/lib.pager.php	(revision 3118)
@@ -175,31 +175,7 @@
 
 			if( $filter ) {
-				$html_block .= '<caption>'.sprintf(__('List of %s entries matching the filter.'), $this->rs_count).'</caption>';
+				$html_block .= '<caption>'.sprintf(__('List of %s entries match the filter.'), $this->rs_count).'</caption>';
 			} else {
-				$nb_published = $this->core->blog->getPosts(array('post_status' => 1),true)->f(0);
-				$nb_pending = $this->core->blog->getPosts(array('post_status' => -2),true)->f(0);
-				$nb_programmed = $this->core->blog->getPosts(array('post_status' => -1),true)->f(0);
-				$nb_unpublished = $this->core->blog->getPosts(array('post_status' => 0),true)->f(0);
-				$html_block .= '<caption>'.
-					sprintf(__('List of entries (%s)'),$this->rs_count).
-					($nb_published ?
-						sprintf(
-						__(', <a href="%s">published</a> (1)',', <a href="%s">published</a> (%s)',$nb_published),
-						$this->core->adminurl->get('admin.posts',array('status' => 1)),
-						$nb_published) : '').
-					($nb_pending ?
-						sprintf(
-						__(', <a href="%s">pending</a> (1)',', <a href="%s">pending</a> (%s)',$nb_pending),
-						$this->core->adminurl->get('admin.posts',array('status' => -2)),
-						$nb_pending) : '').
-					($nb_programmed ?
-						sprintf(__(', <a href="%s">programmed</a> (1)',', <a href="%s">programmed</a> (%s)',$nb_programmed),
-						$this->core->adminurl->get('admin.posts',array('status' => -1)),
-						$nb_programmed) : '').
-					($nb_unpublished ?
-						sprintf(__(', <a href="%s">unpublished</a> (1)',', <a href="%s">unpublished</a> (%s)',$nb_unpublished),
-						$this->core->adminurl->get('admin.posts',array('status' => 0)),
-						$nb_unpublished) : '').
-					'</caption>';
+				$html_block .= '<caption class="hidden">'.__('Entries list').'</caption>';
 			}
 
@@ -478,29 +454,5 @@
 					'</caption>';
 			} else {
-				$nb_published = $this->core->blog->getComments(array('comment_status' => 1),true)->f(0);
-				$nb_spam = $this->core->blog->getComments(array('comment_status' => -2),true)->f(0);
-				$nb_pending = $this->core->blog->getComments(array('comment_status' => -1),true)->f(0);
-				$nb_unpublished = $this->core->blog->getComments(array('comment_status' => 0),true)->f(0);
-				$html_block .= '<caption>'.
-					sprintf(__('List of comments and trackbacks (%s)'),$this->rs_count).
-					($nb_published ?
-						sprintf(
-						__(', <a href="%s">published</a> (1)',', <a href="%s">published</a> (%s)',$nb_published),
-						$this->core->adminurl->get('admin.comments',array('status' => 1)),
-						$nb_published) : '').
-					($nb_spam ?
-						sprintf(
-						__(', <a href="%s">spam</a> (1)',', <a href="%s">spam</a> (%s)',$nb_spam),
-						$this->core->adminurl->get('admin.comments',array('status' => -2)),
-						$nb_spam) : '').
-					($nb_pending ?
-						sprintf(__(', <a href="%s">pending</a> (1)',', <a href="%s">pending</a> (%s)',$nb_pending),
-						$this->core->adminurl->get('admin.comments',array('status' => -1)),
-						$nb_pending) : '').
-					($nb_unpublished ?
-						sprintf(__(', <a href="%s">unpublished</a> (1)',', <a href="%s">unpublished</a> (%s)',$nb_unpublished),
-						$this->core->adminurl->get('admin.comments',array('status' => 0)),
-						$nb_unpublished) : '').
-					'</caption>';
+				$html_block .= '<caption class="hidden">'.__('Comments and trackbacks list').'</caption>';
 			}
 
Index: inc/core/class.dc.auth.php
===================================================================
--- inc/core/class.dc.auth.php	(revision 3231)
+++ inc/core/class.dc.auth.php	(revision 3036)
@@ -172,5 +172,5 @@
 	public function crypt($pwd)
 	{
-		return crypt::hmac(DC_MASTER_KEY,$pwd,DC_CRYPT_ALGO);
+		return crypt::hmac(DC_MASTER_KEY,$pwd);
 	}
 
@@ -310,5 +310,5 @@
 
 		$user_id = trim(@pack('a32',substr($code,0,32)));
-		$pwd = @unpack('H*hex',substr($code,32));
+		$pwd = @unpack('H40hex',substr($code,32,40));
 
 		if ($user_id === false || $pwd === false) {
Index: inc/core/class.dc.core.php
===================================================================
--- inc/core/class.dc.core.php	(revision 3231)
+++ inc/core/class.dc.core.php	(revision 3216)
@@ -198,5 +198,4 @@
 	public function checkNonce($secret)
 	{
-		// 40 alphanumeric characters min
 		if (!preg_match('/^([0-9a-f]{40,})$/i',$secret)) {
 			return false;
@@ -1207,5 +1206,4 @@
 			'active_quote' => 1,
 			'active_pre' => 1,
-			'active_aside' => 1,
 			'active_empty' => 1,
 			'active_auto_br' => 0,
@@ -1254,5 +1252,4 @@
 			'active_quote' => 0,
 			'active_pre' => 0,
-			'active_aside' => 0,
 			'active_empty' => 0,
 			'active_auto_br' => 1,
@@ -1295,5 +1292,4 @@
 			'active_quote' => 0,
 			'active_pre' => 1,
-			'active_aside' => 0,
 			'active_empty' => 0,
 			'active_auto_br' => 1,
Index: inc/core/class.dc.namespace.php
===================================================================
--- inc/core/class.dc.namespace.php	(revision 3225)
+++ inc/core/class.dc.namespace.php	(revision 3203)
@@ -391,14 +391,4 @@
 
 	/**
-	Returns $ns property content.
-
-	@return	<b>string</b>
-	*/
-	public function dumpNamespace()
-	{
-		return $this->ns;
-	}
-
-	/**
 	Returns $settings property content.
 
@@ -411,18 +401,8 @@
 
 	/**
-	Returns $local_settings property content.
+	Returns $global_settings property content.
 
 	@return	<b>array</b>
 	*/
-	public function dumpLocalSettings()
-	{
-		return $this->local_settings;
-	}
-
-	/**
-	Returns $global_settings property content.
-
-	@return	<b>array</b>
-	*/
 	public function dumpGlobalSettings()
 	{
Index: inc/core/class.dc.workspace.php
===================================================================
--- inc/core/class.dc.workspace.php	(revision 3225)
+++ inc/core/class.dc.workspace.php	(revision 3203)
@@ -407,14 +407,4 @@
 
 	/**
-	Returns $ws property content.
-
-	@return	<b>string</b>
-	*/
-	public function dumpWorkspace()
-	{
-		return $this->ws;
-	}
-
-	/**
 	Returns $prefs property content.
 
Index: inc/dbschema/db-schema.php
===================================================================
--- inc/dbschema/db-schema.php	(revision 3231)
+++ inc/dbschema/db-schema.php	(revision 2566)
@@ -19,12 +19,12 @@
 -------------------------------------------------------- */
 $_s->blog
-	->blog_id				('varchar',		32,		false)
-	->blog_uid				('varchar',		32,		false)
-	->blog_creadt			('timestamp',	0,		false,	'now()')
-	->blog_upddt			('timestamp',	0,		false,	'now()')
-	->blog_url				('varchar',		255,	false)
-	->blog_name				('varchar',		255,	false)
-	->blog_desc				('text',		0,		true)
-	->blog_status			('smallint',	0,		false,	1)
+	->blog_id		('varchar',	32,	false)
+	->blog_uid	('varchar',	32,	false)
+	->blog_creadt	('timestamp',	0,	false,	'now()')
+	->blog_upddt	('timestamp',	0,	false,	'now()')
+	->blog_url	('varchar',	255,	false)
+	->blog_name	('varchar',	255,	false)
+	->blog_desc	('text',		0,	true)
+	->blog_status	('smallint',	0,	false,	1)
 
 	->primary('pk_blog','blog_id')
@@ -32,12 +32,12 @@
 
 $_s->category
-	->cat_id				('bigint',		0,		false)
-	->blog_id				('varchar',		32,		false)
-	->cat_title				('varchar',		255,	false)
-	->cat_url				('varchar',		255,	false)
-	->cat_desc				('text',		0,		true)
-	->cat_position			('integer',		0,		true,	0)
-	->cat_lft				('integer',		0,		true)
-	->cat_rgt				('integer',		0,		true)
+	->cat_id		('bigint',	0,	false)
+	->blog_id		('varchar',	32,	false)
+	->cat_title	('varchar',	255,	false)
+	->cat_url		('varchar',	255,	false)
+	->cat_desc	('text',		0,	true)
+	->cat_position	('integer',	0,	true,	0)
+	->cat_lft		('integer',	0,	true)
+	->cat_rgt		('integer',	0,	true)
 
 	->primary('pk_category','cat_id')
@@ -47,8 +47,8 @@
 
 $_s->session
-	->ses_id				('varchar',		40,		false)
-	->ses_time				('integer',		0,		false,	0)
-	->ses_start				('integer',		0,		false,	0)
-	->ses_value				('text',		0,		false)
+	->ses_id		('varchar',	40,	false)
+	->ses_time	('integer',	0,	false,	0)
+	->ses_start	('integer',	0,	false,	0)
+	->ses_value	('text',		0,	false)
 
 	->primary('pk_session','ses_id')
@@ -56,10 +56,10 @@
 
 $_s->setting
-	->setting_id			('varchar',		255,	false)
-	->blog_id				('varchar',		32,		true)
-	->setting_ns			('varchar',		32,		false,	"'system'")
-	->setting_value			('text',		0,		true,	null)
-	->setting_type			('varchar',		8,		false,	"'string'")
-	->setting_label			('text',		0,		true)
+	->setting_id		('varchar',	255,	false)
+	->blog_id			('varchar',	32,	true)
+	->setting_ns		('varchar',	32,	false,	"'system'")
+	->setting_value	('text',		0,	true,	null)
+	->setting_type		('varchar',	8,	false,	"'string'")
+	->setting_label	('text',		0,	true)
 
 	->unique('uk_setting','setting_ns','setting_id','blog_id')
@@ -67,23 +67,23 @@
 
 $_s->user
-	->user_id				('varchar',		32,		false)
-	->user_super			('smallint',	0,		true)
-	->user_status			('smallint',	0,		false,	1)
-	->user_pwd				('varchar',		255,	false)
-	->user_change_pwd		('smallint',	0,		false,	0)
-	->user_recover_key		('varchar',		32,		true,	null)
-	->user_name				('varchar',		255,	true,	null)
-	->user_firstname		('varchar',		255,	true,	null)
-	->user_displayname		('varchar',		255,	true,	null)
-	->user_email			('varchar',		255,	true,	null)
-	->user_url				('varchar',		255,	true,	null)
-	->user_desc				('text',		0,		true)
-	->user_default_blog		('varchar',		32,		true,	null)
-	->user_options			('text',		0,		true)
-	->user_lang				('varchar',		5,		true,	null)
-	->user_tz				('varchar',		128,	false,	"'UTC'")
-	->user_post_status		('smallint',	0,		false,	-2)
-	->user_creadt			('timestamp',	0,		false,	'now()')
-	->user_upddt			('timestamp',	0,		false,	'now()')
+	->user_id			('varchar',	32,	false)
+	->user_super		('smallint',	0,	true)
+	->user_status		('smallint',	0,	false,	1)
+	->user_pwd		('varchar',	40,	false)
+	->user_change_pwd	('smallint',	0,	false,	0)
+	->user_recover_key	('varchar',	32,	true,	null)
+	->user_name		('varchar',	255,	true,	null)
+	->user_firstname	('varchar',	255,	true,	null)
+	->user_displayname	('varchar',	255,	true,	null)
+	->user_email		('varchar',	255,	true,	null)
+	->user_url		('varchar',	255,	true,	null)
+	->user_desc		('text',		0,	true)
+	->user_default_blog	('varchar',	32,	true,	null)
+	->user_options		('text',		0,	true)
+	->user_lang		('varchar',	5,	true,	null)
+	->user_tz			('varchar',	128,	false,	"'UTC'")
+	->user_post_status	('smallint',	0,	false,	-2)
+	->user_creadt		('timestamp',	0,	false,	'now()')
+	->user_upddt		('timestamp',	0,	false,	'now()')
 
 	->primary('pk_user','user_id')
@@ -91,7 +91,7 @@
 
 $_s->permissions
-	->user_id				('varchar',		32,		false)
-	->blog_id				('varchar',		32,		false)
-	->permissions			('text',		0,		true)
+	->user_id		('varchar',	32,	false)
+	->blog_id		('varchar',	32,	false)
+	->permissions	('text',		0,	true)
 
 	->primary('pk_permissions','user_id','blog_id')
@@ -99,32 +99,32 @@
 
 $_s->post
-	->post_id				('bigint',		0,		false)
-	->blog_id				('varchar',		32,		false)
-	->user_id				('varchar',		32,		false)
-	->cat_id				('bigint',		0,		true)
-	->post_dt				('timestamp',	0,		false,	'now()')
-	->post_tz				('varchar',		128,	false,	"'UTC'")
-	->post_creadt			('timestamp',	0,		false,	'now()')
-	->post_upddt			('timestamp',	0,		false,	'now()')
-	->post_password			('varchar',		32,		true,	null)
-	->post_type				('varchar',		32,		false,	"'post'")
-	->post_format			('varchar',		32,		false,	"'xhtml'")
-	->post_url				('varchar',		255,	false)
-	->post_lang				('varchar',		5,		true,	null)
-	->post_title			('varchar',		255,	true,	null)
-	->post_excerpt			('text',		0,		true,	null)
-	->post_excerpt_xhtml	('text',		0,		true,	null)
-	->post_content			('text',		0,		true,	null)
-	->post_content_xhtml	('text',		0,		false)
-	->post_notes			('text',		0,		true,	null)
-	->post_meta				('text',		0,		true,	null)
-	->post_words			('text',		0,		true,	null)
-	->post_status			('smallint',	0,		false,	0)
-	->post_selected			('smallint',	0,		false,	0)
-	->post_position			('integer',		0,		false,	0)
-	->post_open_comment		('smallint',	0,		false,	0)
-	->post_open_tb			('smallint',	0,		false,	0)
-	->nb_comment			('integer',		0,		false,	0)
-	->nb_trackback			('integer',		0,		false,	0)
+	->post_id				('bigint',	0,	false)
+	->blog_id				('varchar',	32,	false)
+	->user_id				('varchar',	32,	false)
+	->cat_id				('bigint',	0,	true)
+	->post_dt				('timestamp',	0,	false,	'now()')
+	->post_tz				('varchar',	128,	false,	"'UTC'")
+	->post_creadt			('timestamp',	0,	false,	'now()')
+	->post_upddt			('timestamp',	0,	false,	'now()')
+	->post_password		('varchar',	32,	true,	null)
+	->post_type			('varchar',	32,	false,	"'post'")
+	->post_format			('varchar',	32,	false,	"'xhtml'")
+	->post_url			('varchar',	255,	false)
+	->post_lang			('varchar',	5,	true,	null)
+	->post_title			('varchar',	255,	true,	null)
+	->post_excerpt			('text',		0,	true,	null)
+	->post_excerpt_xhtml	('text',		0,	true,	null)
+	->post_content			('text',		0,	true,	null)
+	->post_content_xhtml	('text',		0,	false)
+	->post_notes			('text',		0,	true,	null)
+	->post_meta			('text',		0,	true,	null)
+	->post_words			('text',		0,	true,	null)
+	->post_status			('smallint',	0,	false,	0)
+	->post_selected		('smallint',	0,	false,	0)
+	->post_position		('integer',	0,	false,	0)
+	->post_open_comment		('smallint',	0,	false,	0)
+	->post_open_tb			('smallint',	0,	false,	0)
+	->nb_comment			('integer',	0,	false,	0)
+	->nb_trackback			('integer',	0,	false,	0)
 
 	->primary('pk_post','post_id')
@@ -134,15 +134,15 @@
 
 $_s->media
-	->media_id				('bigint',		0,		false)
-	->user_id				('varchar',		32,		false)
-	->media_path			('varchar',		255,	false)
-	->media_title			('varchar',		255,	false)
-	->media_file			('varchar',		255,	false)
-	->media_dir				('varchar',		255,	false,	"'.'")
-	->media_meta			('text',		0,		true,	null)
-	->media_dt				('timestamp',	0,		false,	'now()')
-	->media_creadt			('timestamp',	0,		false,	'now()')
-	->media_upddt			('timestamp',	0,		false,	'now()')
-	->media_private			('smallint',	0,		false,	0)
+	->media_id		('bigint',	0,	false)
+	->user_id			('varchar',	32,	false)
+	->media_path		('varchar',	255,	false)
+	->media_title		('varchar',	255,	false)
+	->media_file		('varchar',	255,	false)
+	->media_dir		('varchar',	255,	false,	"'.'")
+	->media_meta		('text',		0,	true,	null)
+	->media_dt		('timestamp',	0,	false,	'now()')
+	->media_creadt		('timestamp',	0,	false,	'now()')
+	->media_upddt		('timestamp',	0,	false,	'now()')
+	->media_private	('smallint',	0,	false,	0)
 
 	->primary('pk_media','media_id')
@@ -150,7 +150,7 @@
 
 $_s->post_media
-	->media_id				('bigint',		0,		false)
-	->post_id				('bigint',		0,		false)
-	->link_type				('varchar',		32,		false,	"'attachment'")
+	->media_id	('bigint',	0,	false)
+	->post_id		('bigint',	0,	false)
+	->link_type		('varchar',	32,	false,	"'attachment'")
 
 	->primary('pk_post_media','media_id','post_id','link_type')
@@ -158,11 +158,11 @@
 
 $_s->log
-	->log_id				('bigint',		0,		false)
-	->user_id				('varchar',		32,		true)
-	->blog_id				('varchar',		32,		true)
-	->log_table				('varchar',		255,	false)
-	->log_dt				('timestamp',	0,		false,	'now()')
-	->log_ip				('varchar',		39,		false)
-	->log_msg				('text',		0,		true,	null)
+	->log_id		('bigint',	0,	false)
+	->user_id		('varchar',	32,	true)
+	->blog_id		('varchar',	32,	true)
+	->log_table	('varchar',	255,	false)
+	->log_dt		('timestamp',	0,	false,	'now()')
+	->log_ip		('varchar',	39,	false)
+	->log_msg		('text',	0,	true,	null)
 
 	->primary('pk_log','log_id')
@@ -170,6 +170,6 @@
 
 $_s->version
-	->module				('varchar',		64,		false)
-	->version				('varchar',		32,		false)
+	->module	('varchar',	64,	false)
+	->version	('varchar',	32,	false)
 
 	->primary('pk_version','module')
@@ -177,7 +177,7 @@
 
 $_s->ping
-	->post_id				('bigint',		0,		false)
-	->ping_url				('varchar',		255,	false)
-	->ping_dt				('timestamp',	0,		false,	'now()')
+	->post_id		('bigint',	0,	false)
+	->ping_url	('varchar',	255,	false)
+	->ping_dt		('timestamp',	0,	false,	'now()')
 
 	->primary('pk_ping','post_id','ping_url')
@@ -185,19 +185,19 @@
 
 $_s->comment
-	->comment_id			('bigint',		0,		false)
-	->post_id				('bigint',		0,		false)
-	->comment_dt			('timestamp',	0,		false,	'now()')
-	->comment_tz			('varchar',		128,	false,	"'UTC'")
-	->comment_upddt			('timestamp',	0,		false,	'now()')
-	->comment_author		('varchar',		255,	true,	null)
-	->comment_email			('varchar',		255,	true,	null)
-	->comment_site			('varchar',		255,	true,	null)
-	->comment_content		('text',		0,		true)
-	->comment_words			('text',		0,		true,	null)
-	->comment_ip			('varchar',		39,		true,	null)
-	->comment_status		('smallint',	0,		true,	0)
-	->comment_spam_status	('varchar',		128,	true,	0)
-	->comment_spam_filter	('varchar',		32,		true,	null)
-	->comment_trackback		('smallint',	0,		false,	0)
+	->comment_id			('bigint',	0,	false)
+	->post_id				('bigint',	0,	false)
+	->comment_dt			('timestamp',	0,	false,	'now()')
+	->comment_tz			('varchar',	128,	false,	"'UTC'")
+	->comment_upddt		('timestamp',	0,	false,	'now()')
+	->comment_author		('varchar',	255,	true,	null)
+	->comment_email		('varchar',	255,	true,	null)
+	->comment_site			('varchar',	255,	true,	null)
+	->comment_content		('text',		0,	true)
+	->comment_words		('text',		0,	true,	null)
+	->comment_ip			('varchar',	39,	true,	null)
+	->comment_status		('smallint',	0,	true,	0)
+	->comment_spam_status	('varchar',	128,	true,	0)
+	->comment_spam_filter	('varchar',	32,	true,	null)
+	->comment_trackback		('smallint',	0,	false,	0)
 
 	->primary('pk_comment','comment_id')
@@ -205,7 +205,7 @@
 
 $_s->meta
-	->meta_id				('varchar',		255,	false)
-	->meta_type				('varchar',		64,		false)
-	->post_id				('bigint',		0,		false)
+	->meta_id		('varchar',	255,	false)
+	->meta_type	('varchar',	64,	false)
+	->post_id		('bigint',	0,	false)
 
 	->primary('pk_meta','meta_id','meta_type','post_id')
@@ -213,10 +213,10 @@
 
 $_s->pref
-	->pref_id				('varchar',		255,	false)
-	->user_id				('varchar',		32,		true)
-	->pref_ws				('varchar',		32,		false,	"'system'")
-	->pref_value			('text',		0,		true,	null)
-	->pref_type				('varchar',		8,		false,	"'string'")
-	->pref_label			('text',		0,		true)
+	->pref_id		('varchar',	255,	false)
+	->user_id			('varchar',	32,	true)
+	->pref_ws		('varchar',	32,	false,	"'system'")
+	->pref_value	('text',		0,	true,	null)
+	->pref_type		('varchar',	8,	false,	"'string'")
+	->pref_label	('text',		0,	true)
 
 	->unique('uk_pref','pref_ws','pref_id','user_id')
@@ -228,28 +228,28 @@
 $_s->category->index	('idx_category_cat_lft_blog_id',	'btree',	'blog_id', 'cat_lft');
 $_s->category->index	('idx_category_cat_rgt_blog_id',	'btree',	'blog_id', 'cat_rgt');
-$_s->setting->index		('idx_setting_blog_id',				'btree',	'blog_id');
-$_s->user->index		('idx_user_user_default_blog',		'btree',	'user_default_blog');
-$_s->permissions->index	('idx_permissions_blog_id',			'btree',	'blog_id');
-$_s->post->index		('idx_post_cat_id',					'btree',	'cat_id');
-$_s->post->index		('idx_post_user_id',				'btree',	'user_id');
-$_s->post->index		('idx_post_blog_id',				'btree',	'blog_id');
-$_s->media->index		('idx_media_user_id',				'btree',	'user_id');
-$_s->post_media->index	('idx_post_media_post_id',			'btree',	'post_id');
-$_s->post_media->index	('idx_post_media_media_id',			'btree',	'media_id');
-$_s->log->index			('idx_log_user_id',					'btree',	'user_id');
-$_s->comment->index		('idx_comment_post_id',				'btree',	'post_id');
-$_s->meta->index		('idx_meta_post_id',				'btree',	'post_id');
-$_s->meta->index		('idx_meta_meta_type',				'btree',	'meta_type');
-$_s->pref->index		('idx_pref_user_id',				'btree',	'user_id');
+$_s->setting->index		('idx_setting_blog_id',			'btree',	'blog_id');
+$_s->user->index		('idx_user_user_default_blog',	'btree',	'user_default_blog');
+$_s->permissions->index	('idx_permissions_blog_id',		'btree',	'blog_id');
+$_s->post->index		('idx_post_cat_id',				'btree',	'cat_id');
+$_s->post->index		('idx_post_user_id',			'btree',	'user_id');
+$_s->post->index		('idx_post_blog_id',			'btree',	'blog_id');
+$_s->media->index		('idx_media_user_id',			'btree',	'user_id');
+$_s->post_media->index	('idx_post_media_post_id',		'btree',	'post_id');
+$_s->post_media->index	('idx_post_media_media_id',		'btree',	'media_id');
+$_s->log->index		('idx_log_user_id',				'btree',	'user_id');
+$_s->comment->index		('idx_comment_post_id',			'btree',	'post_id');
+$_s->meta->index		('idx_meta_post_id',	'btree','post_id');
+$_s->meta->index		('idx_meta_meta_type',	'btree','meta_type');
+$_s->pref->index		('idx_pref_user_id',			'btree',	'user_id');
 
 /* Performance indexes
 -------------------------------------------------------- */
 $_s->comment->index		('idx_comment_post_id_dt_status',	'btree',	'post_id', 'comment_dt', 'comment_status');
-$_s->post->index		('idx_post_post_dt',				'btree',	'post_dt');
-$_s->post->index		('idx_post_post_dt_post_id',		'btree',	'post_dt', 'post_id');
-$_s->post->index		('idx_blog_post_post_dt_post_id',	'btree',	'blog_id', 'post_dt', 'post_id');
-$_s->post->index		('idx_blog_post_post_status',		'btree',	'blog_id', 'post_status');
-$_s->blog->index		('idx_blog_blog_upddt',				'btree',	'blog_upddt');
-$_s->user->index		('idx_user_user_super',				'btree',	'user_super');
+$_s->post->index		('idx_post_post_dt',			'btree',	'post_dt');
+$_s->post->index		('idx_post_post_dt_post_id',		'btree',	'post_dt','post_id');
+$_s->post->index		('idx_blog_post_post_dt_post_id',	'btree',	'blog_id','post_dt','post_id');
+$_s->post->index		('idx_blog_post_post_status',		'btree',	'blog_id','post_status');
+$_s->blog->index		('idx_blog_blog_upddt',			'btree',	'blog_upddt');
+$_s->user->index		('idx_user_user_super',			'btree',	'user_super');
 
 /* Foreign keys
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 3237)
+++ inc/dbschema/upgrade.php	(revision 3232)
@@ -540,10 +540,4 @@
 		}
 
-		if (version_compare($version,'2.10','<='))
-		{
-			@unlink(DC_ROOT.'/'.'admin/js/jsUpload/vendor/jquery.ui.widget.js');
-			@rmdir(DC_ROOT.'/'.'admin/js/jsUpload/vendor');
-		}
-
 		$core->setVersion('core',DC_VERSION);
 		$core->blogDefaults();
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 3237)
+++ inc/prepend.php	(revision 3242)
@@ -142,5 +142,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.10-dev');
+define('DC_VERSION','2.9.2');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
@@ -189,17 +189,4 @@
 if (!defined('DC_ALLOW_MULTI_MODULES')) {
 	define('DC_ALLOW_MULTI_MODULES',false);
-}
-
-if (!defined('DC_CRYPT_ALGO')) {
-	define('DC_CRYPT_ALGO','sha1');	// As in Dotclear 2.9 and previous
-} else {
-	// Check length of cryptographic algorithm result and exit if less than 40 characters long
-	if (strlen(crypt::hmac(DC_MASTER_KEY,DC_VENDOR_NAME,DC_CRYPT_ALGO)) < 40) {
-		if (!defined('DC_CONTEXT_ADMIN')) {
-			exit('Site temporarily unavailable');
-		} else {
-			exit(DC_CRYPT_ALGO.' cryptographic algorithm configured is not strong enough, please change it.');
-		}
-	}
 }
 
Index: inc/public/default-templates/currywurst/__layout.html
===================================================================
--- inc/public/default-templates/currywurst/__layout.html	(revision 3226)
+++ inc/public/default-templates/currywurst/__layout.html	(revision 3017)
@@ -15,5 +15,5 @@
 			</tpl:Block>	<!-- meta-robots -->
 			<tpl:Block name="meta-entry">
-				<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" remove_html="1" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
+				<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
 				<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 				<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
@@ -29,5 +29,5 @@
 			<tpl:Block name="dc-entry">
 				<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
+				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription encode_html="1"}}" />
 				<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 				<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
Index: inc/public/default-templates/currywurst/archive.html
===================================================================
--- inc/public/default-templates/currywurst/archive.html	(revision 3226)
+++ inc/public/default-templates/currywurst/archive.html	(revision 2845)
@@ -7,5 +7,5 @@
 <tpl:Block name="dc-entry">
 	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
+	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription encode_html="1"}}" />
 	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
Index: inc/public/default-templates/currywurst/atom-comments.xml
===================================================================
--- inc/public/default-templates/currywurst/atom-comments.xml	(revision 3226)
+++ inc/public/default-templates/currywurst/atom-comments.xml	(revision 2600)
@@ -7,5 +7,5 @@
   <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/>
   <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html"
-  title="{{tpl:BlogDescription remove_html="1" encode_xml="1"}}"/>
+  title="{{tpl:BlogDescription encode_xml="1"}}"/>
   <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated>
   <author>
Index: inc/public/default-templates/currywurst/atom.xml
===================================================================
--- inc/public/default-templates/currywurst/atom.xml	(revision 3226)
+++ inc/public/default-templates/currywurst/atom.xml	(revision 2600)
@@ -9,5 +9,5 @@
   <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/>
   <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html"
-  title="{{tpl:BlogDescription remove_html="1" encode_xml="1"}}"/>
+  title="{{tpl:BlogDescription encode_xml="1"}}"/>
   <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated>
   <author>
Index: inc/public/default-templates/currywurst/rss2-comments.xml
===================================================================
--- inc/public/default-templates/currywurst/rss2-comments.xml	(revision 3226)
+++ inc/public/default-templates/currywurst/rss2-comments.xml	(revision 2600)
@@ -10,5 +10,5 @@
   <link>{{tpl:BlogURL}}</link>
   <atom:link href="{{tpl:SysSelfURI}}" rel="self" type="application/rss+xml"/>
-  <description>{{tpl:BlogDescription remove_html="1" encode_xml="1"}}</description>
+  <description>{{tpl:BlogDescription encode_xml="1"}}</description>
   <language>{{tpl:BlogLanguage}}</language>
   <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate>
Index: inc/public/default-templates/currywurst/rss2.xml
===================================================================
--- inc/public/default-templates/currywurst/rss2.xml	(revision 3226)
+++ inc/public/default-templates/currywurst/rss2.xml	(revision 2600)
@@ -10,5 +10,5 @@
   <link>{{tpl:BlogURL}}</link>
   <atom:link href="{{tpl:SysSelfURI}}" rel="self" type="application/rss+xml"/>
-  <description>{{tpl:BlogDescription remove_html="1" encode_xml="1"}}</description>
+  <description>{{tpl:BlogDescription encode_xml="1"}}</description>
   <language>{{tpl:BlogLanguage}}</language>
   <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate>
Index: inc/public/default-templates/currywurst/search.html
===================================================================
--- inc/public/default-templates/currywurst/search.html	(revision 3226)
+++ inc/public/default-templates/currywurst/search.html	(revision 3042)
@@ -11,5 +11,5 @@
 <tpl:Block name="dc-entry">
 	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
+	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription encode_html="1"}}" />
 	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
Index: inc/public/default-templates/mustek/__layout.html
===================================================================
--- inc/public/default-templates/mustek/__layout.html	(revision 3226)
+++ inc/public/default-templates/mustek/__layout.html	(revision 3061)
@@ -15,5 +15,5 @@
 			</tpl:Block>	<!-- meta-robots -->
 			<tpl:Block name="meta-entry">
-				<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" remove_html="1" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
+				<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
 				<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 				<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
@@ -29,5 +29,5 @@
 			<tpl:Block name="dc-entry">
 				<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
+				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription encode_html="1"}}" />
 				<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 				<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
Index: inc/public/default-templates/mustek/atom-comments.xml
===================================================================
--- inc/public/default-templates/mustek/atom-comments.xml	(revision 3226)
+++ inc/public/default-templates/mustek/atom-comments.xml	(revision 2599)
@@ -7,5 +7,5 @@
   <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/>
   <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html"
-  title="{{tpl:BlogDescription remove_html="1" encode_xml="1"}}"/>
+  title="{{tpl:BlogDescription encode_xml="1"}}"/>
   <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated>
   <author>
Index: inc/public/default-templates/mustek/atom.xml
===================================================================
--- inc/public/default-templates/mustek/atom.xml	(revision 3226)
+++ inc/public/default-templates/mustek/atom.xml	(revision 2599)
@@ -9,5 +9,5 @@
   <link href="{{tpl:SysSelfURI}}" rel="self" type="application/atom+xml"/>
   <link href="{{tpl:BlogURL}}" rel="alternate" type="text/html"
-  title="{{tpl:BlogDescription remove_html="1" encode_xml="1"}}"/>
+  title="{{tpl:BlogDescription encode_xml="1"}}"/>
   <updated>{{tpl:BlogUpdateDate iso8601="1"}}</updated>
   <author>
Index: inc/public/default-templates/mustek/rss2-comments.xml
===================================================================
--- inc/public/default-templates/mustek/rss2-comments.xml	(revision 3226)
+++ inc/public/default-templates/mustek/rss2-comments.xml	(revision 2599)
@@ -10,5 +10,5 @@
   <link>{{tpl:BlogURL}}</link>
   <atom:link href="{{tpl:SysSelfURI}}" rel="self" type="application/rss+xml"/>
-  <description>{{tpl:BlogDescription remove_html="1" encode_xml="1"}}</description>
+  <description>{{tpl:BlogDescription encode_xml="1"}}</description>
   <language>{{tpl:BlogLanguage}}</language>
   <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate>
Index: inc/public/default-templates/mustek/rss2.xml
===================================================================
--- inc/public/default-templates/mustek/rss2.xml	(revision 3226)
+++ inc/public/default-templates/mustek/rss2.xml	(revision 2599)
@@ -10,5 +10,5 @@
   <link>{{tpl:BlogURL}}</link>
   <atom:link href="{{tpl:SysSelfURI}}" rel="self" type="application/rss+xml"/>
-  <description>{{tpl:BlogDescription remove_html="1" encode_xml="1"}}</description>
+  <description>{{tpl:BlogDescription encode_xml="1"}}</description>
   <language>{{tpl:BlogLanguage}}</language>
   <pubDate>{{tpl:BlogUpdateDate rfc822="1"}}</pubDate>
Index: locales/en/main.po
===================================================================
--- locales/en/main.po	(revision 3210)
+++ locales/en/main.po	(revision 2807)
@@ -666,5 +666,5 @@
 msgstr ""
 
-msgid "Category where to move entries does not exist"
+msgid "Category where to move posts does not exist"
 msgstr ""
 
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 3239)
+++ locales/fr/main.po	(revision 3204)
@@ -708,5 +708,5 @@
 
 msgid "Entries have been successfully moved to the category you choose."
-msgstr "Les entrées ont été déplacés dans la catégorie choisie."
+msgstr "Les billets ont été déplacés dans la catégorie choisie."
 
 msgid "New category"
@@ -718,11 +718,11 @@
 #, php-format
 msgid "%d entries"
-msgstr "%d entrées"
+msgstr "%d billets"
 
 #, php-format
 msgid "%d entry"
 msgid_plural "%d entries"
-msgstr[0] "%d entrée"
-msgstr[1] "%d entrées"
+msgstr[0] "%d billet"
+msgstr[1] "%d billets"
 
 msgid "total:"
@@ -733,5 +733,5 @@
 
 msgid "Move entries to"
-msgstr "Déplacer les entrées vers"
+msgstr "Déplacer les billets vers"
 
 msgid "OK"
@@ -803,5 +803,5 @@
 
 msgid "Entry does not exist."
-msgstr "Cette entrée n'existe pas."
+msgstr "Ce billet n'existe pas."
 
 msgid "Comment has been successfully created."
@@ -2198,7 +2198,4 @@
 msgstr "Icônes du tableau de bord"
 
-msgid "Display dashboard icons"
-msgstr "Afficher les icônes du tableau de bord"
-
 msgid "Iconset:"
 msgstr "Jeu d'icônes :"
@@ -3089,32 +3086,9 @@
 
 #, php-format
-msgid "List of %s entries matching the filter."
+msgid "List of %s entries match the filter."
 msgstr "Liste des %s billets correspondant au filtre"
 
 msgid "Entries list"
 msgstr "Liste des entrées"
-
-msgid "List of entries (%s)"
-msgstr "Liste des billets (%s)"
-
-msgid ", <a href="%s">published</a> (1)"
-msgid_plural ", <a href="%s">published</a> (%s)"
-msgstr[0] ", <a href="%s">publié</a> (1)"
-msgstr[1] ", <a href="%s">publiés</a> (%s)"
-
-msgid ", <a href="%s">pending</a> (1)"
-msgid_plural ", <a href="%s">pending</a> (%s)"
-msgstr[0] ", <a href="%s">en attente</a> (1)"
-msgstr[1] ", <a href="%s">en attente</a> (%s)"
-
-msgid ", <a href="%s">programmed</a> (1)"
-msgid_plural ", <a href="%s">programmed</a> (%s)"
-msgstr[0] ", <a href="%s">programmé</a> (1)"
-msgstr[1] ", <a href="%s">programmés</a> (%s)"
-
-msgid ", <a href="%s">unpublished</a> (1)"
-msgid_plural ", <a href="%s">unpublished</a> (%s)"
-msgstr[0] ", <a href="%s">non publié</a> (1)"
-msgstr[1] ", <a href="%s">non publiés</a> (%s)"
 
 msgid "Protected"
@@ -3138,12 +3112,4 @@
 msgstr[1] "Liste des %s commentaires ou rétroliens correspondants au filtre."
 
-msgid "List of comments and trackbacks (%s)"
-msgstr "Liste des commentaires et rétroliens (%s)"
-
-msgid ", <a href="%s">spam</a> (1)"
-msgid_plural ", <a href="%s">spam</a> (%s)"
-msgstr[0] ", <a href="%s">indésirable</a> (1)"
-msgstr[1] ", <a href="%s">indésirables</a> (%s)"
-
 msgid "Type"
 msgstr "Type"
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 3240)
+++ locales/fr/plugins.po	(revision 3151)
@@ -413,7 +413,4 @@
 msgstr "Titre (optionnel)"
 
-msgid "Placeholder (HTML5 only, optional):"
-msgstr "Texte indicatif (HTML5 seulement, optionnel) :"
-
 msgid "All categories"
 msgstr "Toutes les catégories"
Index: plugins/antispam/inc/lib.dc.antispam.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.php	(revision 3231)
+++ plugins/antispam/inc/lib.dc.antispam.php	(revision 3036)
@@ -143,5 +143,5 @@
 
 		$user_id = trim(@pack('a32',substr($code,0,32)));
-		$pwd = @unpack('H*hex',substr($code,32));
+		$pwd = @unpack('H40hex',substr($code,32,40));
 
 		if ($user_id === false || $pwd === false) {
Index: plugins/widgets/_default_widgets.php
===================================================================
--- plugins/widgets/_default_widgets.php	(revision 3240)
+++ plugins/widgets/_default_widgets.php	(revision 2778)
@@ -20,5 +20,4 @@
 $__widgets->create('search',__('Search engine'),array('defaultWidgets','search'),null,'Search engine form');
 $__widgets->search->setting('title',__('Title (optional)').' :',__('Search'));
-$__widgets->search->setting('placeholder',__('Placeholder (HTML5 only, optional):'),'');
 $__widgets->search->setting('homeonly',__('Display on:'),0,'combo',
 	array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2));
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 3240)
+++ plugins/widgets/_widgets_functions.php	(revision 3030)
@@ -36,6 +36,5 @@
 			'<form action="'.$core->blog->url.'" method="get" role="search">'.
 			'<fieldset>'.
-			'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="'.$value.'" '.
-			($w->placeholder ? 'placeholder="'.html::escapeHTML($w->placeholder).'"' : '').'/> '.
+			'<p><input type="text" size="10" maxlength="255" id="q" name="q" value="'.$value.'" /> '.
 			'<input type="submit" class="submit" value="ok" /></p>'.
 			'</fieldset>'.
Index: plugins/widgets/class.widgets.php
===================================================================
--- plugins/widgets/class.widgets.php	(revision 3223)
+++ plugins/widgets/class.widgets.php	(revision 3058)
@@ -320,5 +320,5 @@
 				$res .=
 				'<p><label for="'.$wfid.'">'.$s['title'].'</label> '.
-				form::textarea(array($iname,$wfid),30,8,html::escapeHTML($s['value']),'maximal').
+				form::textarea(array($iname,$wfid),30,5,html::escapeHTML($s['value']),'maximal').
 				'</p>';
 				break;
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 3223)
+++ plugins/widgets/index.php	(revision 3021)
@@ -234,8 +234,5 @@
   //]]>
   </script>
-  <?php
-  		$widget_editor = $core->auth->getOption('editor');
-  		echo $core->callBehavior('adminPostEditor',$widget_editor['xhtml'],'widget',array('#sidebarsWidgets textarea'),'xhtml');
-  ?>
+  <?php echo $core->callBehavior('adminPostEditor');?>
   <?php echo(dcPage::jsConfirmClose('sidebarsWidgets')); ?>
 </head>
Index: plugins/widgets/widgets.js
===================================================================
--- plugins/widgets/widgets.js	(revision 3223)
+++ plugins/widgets/widgets.js	(revision 2563)
@@ -126,12 +126,3 @@
 		reorder($this.parents('ul.connected'));
 	});
-
-	// HTML text editor
-	if ($.isFunction(jsToolBar)) {
-		$('#sidebarsWidgets textarea').each(function() {
-			var tbWidgetText = new jsToolBar(this);
-			tbWidgetText.draw('xhtml');
-		});
-	}
-
 });
Index: tests/functional/index.html
===================================================================
--- tests/functional/index.html	(revision 3218)
+++ tests/functional/index.html	(revision 2726)
@@ -16,6 +16,6 @@
     <script type="text/javascript" src="../../admin/js/_users_actions.js"></script>
     <script type="text/javascript" src="../../admin/js/common.js"></script>
-    <script type="text/javascript" src="../../admin/js/jquery/jquery.pageTabs.js"></script>
-
+    <script type="text/javascript" src="../../admin/js/jquery/jquery.pageTabs.js"></script>    
+    
     <!--[if lt IE 8]>
 	<script type="text/javascript" src="js/ie7/ie7-hashchange.js"></script>
@@ -27,5 +27,5 @@
 
     <!-- jsUpload -->
-    <script type="text/javascript" src="../../admin/js/jquery/jquery-ui.custom.js"></script>
+    <script type="text/javascript" src="../../admin/js/jsUpload/vendor/jquery.ui.widget.js"></script>
     <script type="text/javascript" src="../../admin/js/jsUpload/tmpl.js"></script>
     <script type="text/javascript" src="../../admin/js/jsUpload/template-upload.js"></script>
@@ -35,16 +35,16 @@
     <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload.js"></script>
     <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-process.js"></script>
-    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-resize.js"></script>
+    <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-resize.js"></script> 
     <script type="text/javascript" src="../../admin/js/jsUpload/jquery.fileupload-ui.js"></script>
     <script type="text/javascript" src="../../admin/js/_media.js"></script>
-
+ 
     <!-- <script type="text/javascript" src="spec/users_actions.js"></script> -->
     <script type="text/javascript" src="spec/toggle_with_legend.js"></script>
     <script type="text/javascript" src="spec/common.js"></script>
     <script type="text/javascript" src="spec/media_manager.js"></script>
-
+    
     <!-- page tabs -->
     <script type="text/javascript" src="spec/page_tabs.js"></script>
-
+    
   </head>
   <body>
Index: themes/berlin/scss/partials/_sidebar.scss
===================================================================
--- themes/berlin/scss/partials/_sidebar.scss	(revision 3211)
+++ themes/berlin/scss/partials/_sidebar.scss	(revision 3019)
@@ -64,4 +64,6 @@
     li li {
         border-top: 1px solid $gray-medium;
+    }
+    li li:last-child {
         border-bottom: none;
     }
Index: themes/berlin/style.css
===================================================================
--- themes/berlin/style.css	(revision 3211)
+++ themes/berlin/style.css	(revision 3019)
@@ -247,5 +247,5 @@
   a:focus {
     background-color: #d52125;
-    color: #fafafa; }
+    color: #f9f9f9; }
 
 hr {
@@ -253,11 +253,11 @@
   height: 1px;
   background: #333;
-  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZGNkYyIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjNjM2MzYzIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZGNkY2RjIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');
+  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RjZGNkYyIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjNjI2MjYyIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZGNkY2RjIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');
   background-size: 100%;
-  background-image: linear-gradient(to right, #dcdcdc, #636363, #dcdcdc); }
+  background-image: linear-gradient(to right, #dcdcdc, #626262, #dcdcdc); }
 
 blockquote, q {
   font-family: "New Century Schoolbook", "Century Schoolbook", "Century Schoolbook L", Georgia, serif;
-  color: #636363;
+  color: #626262;
   font-style: italic; }
 
@@ -360,5 +360,5 @@
 --------------------------------------------------- */
 body {
-  background: #f3f3f3 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAAAAAByaaZbAAADdUlEQVR4AZWVPc6YyQ2D3/sfdij+SW2ABYwt4nyxu6mIkfSQ/Oo7iNxJRhvoIANUPEBWnL55o+1w9F0eXA2eo3GnmRwKpOvGrxan6mTbftJgg1m+cgoT9QjltgtqrprlaBfHfNMG232drOVTx5hpUlghlLIT3Tz5fW1EU5hNrh1nB1QeNkhihaTIVuP7WA6xWLCcw+3IEkdWhX9UJQBSZ+GPFcq3m4ft5PkN8irxmT5ImjWfQ73BR2n2FKJlMzvSVuNa4nBpwjjNxLA/bOjF4eLNNm9Xu8LtdBGlldB6qEd8013DDHGe7NYcjltZLaei33KBDb3frrQuo0RFVU2HyGVjLhsvZOqBOX2/1frhm98f73NEt/p0V60wyCSj4ZLIzWI1MdDcwWXT9/Sp0NNmYgjDtN4Zjqz1s9gMZ7Z6bfXt4+R1X6xXR2TWECjPzc2aiLd5Wsnf3szcQUt5ll0uqk0wS0Ijtk8EQZpfIjja7Iads6eT5e6A4SL3lFw92C6/6WKS9dNtFe9ef3DV5xmHvmCB8KAiGU/dyZo6sTWzx9v3jWr7FPphVGa8Os+UNdLJkLd1eL77+LqUZKYzqZwQ5mSxe+YLgjOrcbCfzFrKm9cZGk/VsrW9qzvMaIfYXRr41m4nHh2rl7O9Qw4vtzTKzJCO8iR+PYsT2rykGnkW2nqE/W8Ovg4wayyj5SAg8wPzH2xSR3Vxdh5DjdnZ8XHPeRNxzo2jDwRnH4GdDLJoNXVuciE2hUggxoTvm3koeJy32v9/xu9F2RamcMJ1ErILDhSF8XFmYw1u5/NhDVymA9NYCIouzuyqCsg9nzMUP27yN4N/8+zOwxtuBKnrXWZ94F7Q4PmWtTfe79ejZndbmXomcwD4RqrbgE9G4W+Rp/Kt9j3rnev9IdK/UfPSxdq+l604yJvhClp5rf6bLV+pZ/FZN1vrUofcg+U4J7Arbkd+e98uUHIKr1Jal2X5v8ryw1PmjQ408WYVYBcctqYXlibH9taTj+s5MG1mhwsau42H7b7pQabPpCbA98eYZlmS349yG3ZQLw8oF3mfekfnmVSFehI4O6PnZxNv+xIDADsfx76H3mbdI01EO2B/i9l3O7sP6liqH71CScT1m4hZxKiqKfiN/y7Kvmkr7+rMmFejcdK9oBA96axnfOHD98sYQbJ/UBb/AYWMh4VaQZTbAAAAAElFTkSuQmCC');
+  background: #f2f2f2 url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAAAAAByaaZbAAADdUlEQVR4AZWVPc6YyQ2D3/sfdij+SW2ABYwt4nyxu6mIkfSQ/Oo7iNxJRhvoIANUPEBWnL55o+1w9F0eXA2eo3GnmRwKpOvGrxan6mTbftJgg1m+cgoT9QjltgtqrprlaBfHfNMG232drOVTx5hpUlghlLIT3Tz5fW1EU5hNrh1nB1QeNkhihaTIVuP7WA6xWLCcw+3IEkdWhX9UJQBSZ+GPFcq3m4ft5PkN8irxmT5ImjWfQ73BR2n2FKJlMzvSVuNa4nBpwjjNxLA/bOjF4eLNNm9Xu8LtdBGlldB6qEd8013DDHGe7NYcjltZLaei33KBDb3frrQuo0RFVU2HyGVjLhsvZOqBOX2/1frhm98f73NEt/p0V60wyCSj4ZLIzWI1MdDcwWXT9/Sp0NNmYgjDtN4Zjqz1s9gMZ7Z6bfXt4+R1X6xXR2TWECjPzc2aiLd5Wsnf3szcQUt5ll0uqk0wS0Ijtk8EQZpfIjja7Iads6eT5e6A4SL3lFw92C6/6WKS9dNtFe9ef3DV5xmHvmCB8KAiGU/dyZo6sTWzx9v3jWr7FPphVGa8Os+UNdLJkLd1eL77+LqUZKYzqZwQ5mSxe+YLgjOrcbCfzFrKm9cZGk/VsrW9qzvMaIfYXRr41m4nHh2rl7O9Qw4vtzTKzJCO8iR+PYsT2rykGnkW2nqE/W8Ovg4wayyj5SAg8wPzH2xSR3Vxdh5DjdnZ8XHPeRNxzo2jDwRnH4GdDLJoNXVuciE2hUggxoTvm3koeJy32v9/xu9F2RamcMJ1ErILDhSF8XFmYw1u5/NhDVymA9NYCIouzuyqCsg9nzMUP27yN4N/8+zOwxtuBKnrXWZ94F7Q4PmWtTfe79ejZndbmXomcwD4RqrbgE9G4W+Rp/Kt9j3rnev9IdK/UfPSxdq+l604yJvhClp5rf6bLV+pZ/FZN1vrUofcg+U4J7Arbkd+e98uUHIKr1Jal2X5v8ryw1PmjQ408WYVYBcctqYXlibH9taTj+s5MG1mhwsau42H7b7pQabPpCbA98eYZlmS349yG3ZQLw8oF3mfekfnmVSFehI4O6PnZxNv+xIDADsfx76H3mbdI01EO2B/i9l3O7sP6liqH71CScT1m4hZxKiqKfiN/y7Kvmkr7+rMmFejcdK9oBA96axnfOHD98sYQbJ/UBb/AYWMh4VaQZTbAAAAAElFTkSuQmCC');
   color: #373737; }
 
@@ -455,5 +455,5 @@
 .header a:visited {
   color: #373737;
-  border-bottom-color: #fafafa; }
+  border-bottom-color: #f9f9f9; }
 
 .header a:hover,
@@ -481,7 +481,7 @@
     padding-bottom: .5em; }
     .skip-links li a:link, .skip-links li a:visited {
-      color: #636363; }
+      color: #626262; }
     .skip-links li a:hover, .skip-links li a:focus {
-      background-color: #f3f3f3;
+      background-color: #f2f2f2;
       color: #d52125; }
 
@@ -497,5 +497,5 @@
 
 .site-title__text {
-  color: #636363;
+  color: #626262;
   color: rgba(120, 120, 120, 0.8);
   font-weight: bold;
@@ -514,5 +514,5 @@
   margin-top: 0;
   margin-bottom: 0.5em;
-  color: #636363; }
+  color: #626262; }
 
 .header__nav {
@@ -549,5 +549,5 @@
   .header__nav li a:hover,
   .header__nav li a:focus {
-    background-color: #636363; }
+    background-color: #626262; }
 
 /* Si js est actif, un bouton pour afficher/masquer le menu est créé */
@@ -568,5 +568,5 @@
     background-color: #d52125; }
   #hamburger:focus, #hamburger:hover {
-    background-color: #aa1a1e;
+    background-color: #aa1a1d;
     border-color: #d52125; }
   #hamburger.open {
@@ -652,5 +652,5 @@
     clear: both; }
   .sidebar a:link, .sidebar a:visited {
-    color: #fafafa;
+    color: #f9f9f9;
     border: none; }
   .sidebar a:hover, .sidebar a:focus, .sidebar a:active,
@@ -714,5 +714,6 @@
   margin-left: -.25em; }
 .blognav__widgets li li, .blogextra__widgets li li {
-  border-top: 1px solid #dcdcdc;
+  border-top: 1px solid #dcdcdc; }
+.blognav__widgets li li:last-child, .blogextra__widgets li li:last-child {
   border-bottom: none; }
 
@@ -766,5 +767,5 @@
   border-radius: 50%;
   border: 1px solid #dcdcdc;
-  background-color: #f3f3f3; }
+  background-color: #f2f2f2; }
   .prev:hover, .prev:focus, .next:hover, .next:focus {
     border-width: 3px; }
@@ -814,5 +815,5 @@
   width: 10em;
   padding: .25em;
-  border: 1px solid #636363;
+  border: 1px solid #626262;
   border-radius: .25em;
   background-color: #fff;
@@ -824,5 +825,5 @@
     border: none;
     font-weight: bold;
-    color: #636363; }
+    color: #626262; }
 
 /**
@@ -842,5 +843,5 @@
 .post-meta {
   font-size: 0.875em;
-  background-color: #f3f3f3;
+  background-color: #f2f2f2;
   border-radius: 0.5714286em;
   padding: 0.5714286em 1.1428571em;
@@ -928,5 +929,5 @@
   text-transform: uppercase;
   font-weight: bold;
-  color: #636363; }
+  color: #626262; }
 
 .post-attachments-list {
@@ -943,5 +944,5 @@
   font-size: 1.25em;
   font-weight: bold;
-  color: #636363; }
+  color: #626262; }
 
 .comments-list {
@@ -1006,5 +1007,5 @@
 
 #pr {
-  background-color: #f3f3f3;
+  background-color: #f2f2f2;
   padding: .5em;
   border: 2px solid #6c7c7c;
@@ -1021,11 +1022,11 @@
 
 button.submit, button.preview {
-  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzc3OGY5NyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzVlNzY3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzc3OGY5NiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzVkNzU3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
   background-size: 100%;
-  background-image: linear-gradient(to bottom, #778f97, #5e767d);
-  box-shadow: inset 0 1px 3px 0 #778f97;
-  background-color: #778f97;
+  background-image: linear-gradient(to bottom, #778f96, #5d757d);
+  box-shadow: inset 0 1px 3px 0 #778f96;
+  background-color: #778f96;
   border-radius: .25em;
-  border: 1px solid #5e767d;
+  border: 1px solid #5d757d;
   display: inline-block;
   cursor: pointer;
@@ -1033,5 +1034,5 @@
   padding: .25em .5em;
   text-decoration: none;
-  text-shadow: 0 -1px 0 #636363; }
+  text-shadow: 0 -1px 0 #626262; }
 
 button.submit:hover,
@@ -1040,8 +1041,8 @@
 button.preview:focus {
   cursor: pointer;
-  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVlNzY3ZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzVlNzY3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
+  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVkNzU3ZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzVkNzU3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
   background-size: 100%;
-  background-image: linear-gradient(#5e767d, #5e767d);
-  background-color: #5e767d; }
+  background-image: linear-gradient(#5d757d, #5d757d);
+  background-color: #5d757d; }
 
 button.submit:active, button.preview:active {
@@ -1108,5 +1109,5 @@
     color: #373737; }
     .arch-block a:focus {
-      color: #fafafa; }
+      color: #f9f9f9; }
   @media all and (min-width: 30em) {
     .arch-block {
@@ -1278,5 +1279,5 @@
     background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAKElEQVR4AWNocGgAAiDJAIZgAGZBZMBC/4EQJvgfBEEsmMxwUjCqAABlEwNno9+POwAAAABJRU5ErkJggg==');
     background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNS4wLjIsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIxNnB4Ig0KCSBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPGcgaWQ9IkNhbHF1ZV8xIj4NCgk8Zz4NCgkJPHBhdGggZmlsbD0iIzgwODA4MCIgZD0iTTAsMGgzdjE2SDBWMHogTTYuNSwwaDN2MTZoLTNWMHogTTEzLDBoM3YxNmgtM1YweiIvPg0KCTwvZz4NCjwvZz4NCjxnIGlkPSJDYWxxdWVfMiIgZGlzcGxheT0ibm9uZSI+DQoJPGcgZGlzcGxheT0iaW5saW5lIj4NCgkJPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTEuMywzLjRsMi4xLTIuMWwxMS4zLDExLjNsLTIuMSwyLjFMMS4zLDMuNHoiLz4NCgk8L2c+DQoJDQoJCTxyZWN0IHg9IjYuNSIgeT0iMCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIDAuNzA3MSAtMC43MDcxIDAuNzA3MSA3Ljk5OTkgLTMuMzEzNSkiIGRpc3BsYXk9ImlubGluZSIgZmlsbD0iI0ZGRkZGRiIgd2lkdGg9IjMiIGhlaWdodD0iMTYiLz4NCjwvZz4NCjwvc3ZnPg0K'), none;
-    border: 0.1em solid #636363;
+    border: 0.1em solid #626262;
     border-radius: .25em; }
 
Index: themes/ductile/tpl/home.html
===================================================================
--- themes/ductile/tpl/home.html	(revision 3226)
+++ themes/ductile/tpl/home.html	(revision 2830)
@@ -6,5 +6,5 @@
 
 	<title>{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf></title>
-	<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" remove_html="1" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
+	<meta name="description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription cut_string="180" encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
 	<meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
@@ -13,5 +13,5 @@
 	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
 	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta name="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
+	<meta name="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription encode_html="1"}}" />
 	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
 	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
