Index: plugins/blogroll/_define.php
===================================================================
--- plugins/blogroll/_define.php	(revision 2566)
+++ plugins/blogroll/_define.php	(revision 2662)
@@ -16,5 +16,5 @@
 	/* Description*/		"Manage your blogroll",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'1.3.1',
+	/* Version */			'1.4',
 	array(
 		'permissions' =>	'blogroll',
Index: plugins/blogroll/_public.php
===================================================================
--- plugins/blogroll/_public.php	(revision 2566)
+++ plugins/blogroll/_public.php	(revision 2662)
@@ -153,5 +153,5 @@
 		return
 		($w->content_only ? '' : '<div class="links'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		$links.
 		($w->content_only ? '' : '</div>');
Index: plugins/pages/_define.php
===================================================================
--- plugins/pages/_define.php	(revision 2566)
+++ plugins/pages/_define.php	(revision 2662)
@@ -16,5 +16,5 @@
 	/* Description*/	"Serve entries as simple web pages",
 	/* Author */		"Olivier Meunier",
-	/* Version */		'1.3',
+	/* Version */		'1.4',
 	array(
 		'permissions' =>	'contentadmin,pages',
Index: plugins/pages/_public.php
===================================================================
--- plugins/pages/_public.php	(revision 2635)
+++ plugins/pages/_public.php	(revision 2662)
@@ -270,5 +270,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="pages'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
Index: plugins/simpleMenu/_define.php
===================================================================
--- plugins/simpleMenu/_define.php	(revision 2576)
+++ plugins/simpleMenu/_define.php	(revision 2662)
@@ -16,5 +16,5 @@
 	/* Description*/		"Simple menu for Dotclear",
 	/* Author */			"Franck Paul",
-	/* Version */			'1.1.2',
+	/* Version */			'1.2',
 	array(
 		'permissions' =>	'admin',
Index: plugins/simpleMenu/_public.php
===================================================================
--- plugins/simpleMenu/_public.php	(revision 2605)
+++ plugins/simpleMenu/_public.php	(revision 2662)
@@ -54,5 +54,5 @@
 		return
 			($w->content_only ? '' : '<div class="simple-menu'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-			($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').$menu.
+			($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').$menu.
 			($w->content_only ? '' : '</div>');
 	}
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 2566)
+++ plugins/tags/_define.php	(revision 2662)
@@ -16,5 +16,5 @@
 	/* Description*/		"Tags for posts",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'1.2.1',
+	/* Version */			'1.3',
 	array(
 		'permissions' =>	'usage,contentadmin',
Index: plugins/tags/_public.php
===================================================================
--- plugins/tags/_public.php	(revision 2661)
+++ plugins/tags/_public.php	(revision 2662)
@@ -268,5 +268,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="tags'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
Index: plugins/widgets/_define.php
===================================================================
--- plugins/widgets/_define.php	(revision 2566)
+++ plugins/widgets/_define.php	(revision 2662)
@@ -16,5 +16,5 @@
 	/* Description*/		"Widgets for your blog sidebars",
 	/* Author */			"Olivier Meunier & Dotclear Team",
-	/* Version */			'3.1',
+	/* Version */			'3.2',
 	array(
 		'permissions' =>	'admin',
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 2653)
+++ plugins/widgets/_widgets_functions.php	(revision 2662)
@@ -28,5 +28,5 @@
 		return
 		($w->content_only ? '' : '<div id="search"'.($w->class ? ' class="'.html::escapeHTML($w->class).'"' : '').'>').
-		($w->title ? '<h2><label for="q">'.html::escapeHTML($w->title).'</label></h2>' : '').
+		($w->title ? $w->renderTitle('<label for="q">'.html::escapeHTML($w->title).'</label>') : '').
 		'<form action="'.$core->blog->url.'" method="get" role="search">'.
 		'<fieldset>'.
@@ -49,5 +49,5 @@
 		$res =
 		($w->content_only ? '' : '<div id="topnav"'.($w->class ? ' class="'.html::escapeHTML($w->class).'"' : '').'>').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul role="navigation">';
 
@@ -85,5 +85,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="categories'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '');
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '');
 
 		$ref_level = $level = $rs->level-1;
@@ -146,5 +146,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="selected'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
@@ -180,5 +180,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="langs'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
@@ -220,5 +220,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="syndicate'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
@@ -269,5 +269,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="feed'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
@@ -309,5 +309,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="text'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		$w->text.
 		($w->content_only ? '' : '</div>');
@@ -356,5 +356,5 @@
 		$res =
 		($w->content_only ? '' : '<div class="lastposts'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
@@ -391,5 +391,5 @@
 
 		$res = ($w->content_only ? '' : '<div class="lastcomments'.($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
-		($w->title ? '<h2>'.html::escapeHTML($w->title).'</h2>' : '').
+		($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '').
 		'<ul>';
 
Index: plugins/widgets/class.widgets.php
===================================================================
--- plugins/widgets/class.widgets.php	(revision 2566)
+++ plugins/widgets/class.widgets.php	(revision 2662)
@@ -185,4 +185,30 @@
 	}
 
+	/* Widget rendering tool
+	--------------------------------------------------- */
+	public function renderTitle($title)
+	{
+		global $core;
+
+		if (!$title) {
+			return '';
+		}
+
+		$wtscheme = $core->themes->moduleInfo($core->blog->settings->system->theme,'widgettitleformat');
+		if (empty($wtscheme)) {
+			$tplset = $core->themes->moduleInfo($core->blog->settings->system->theme,'tplset');
+			if (empty($tplset) || $tplset == DC_DEFAULT_TPLSET) {
+				// Use H2 for mustek based themes
+				$wtscheme = '<h2>%s</h2>';
+			} else {
+				// Use H3 for currywurst based themes
+				$wtscheme = '<h3>%s</h3>';
+			}
+		}
+		$ret = sprintf($wtscheme,$title);
+
+		return $ret;
+	}
+
 	/* Widget settings
 	--------------------------------------------------- */
