Index: plugins/dcCKEditor/_admin.php
===================================================================
--- plugins/dcCKEditor/_admin.php	(revision 2738)
+++ plugins/dcCKEditor/_admin.php	(revision 2825)
@@ -14,8 +14,8 @@
 
 $_menu['Plugins']->addItem('dcCKEditor',
-'plugin.php?p=dcCKEditor',
-'index.php?pf=dcCKEditor/imgs/icon.png',
-preg_match('/plugin.php\?p=dcCKEditor/', $_SERVER['REQUEST_URI']),
-$core->auth->check('admin,contentadmin', $core->blog->id)
+	$core->adminurl->get('admin.plugin.dcCKEditor'),
+	$core->adminurl->decode('load.plugin.file',array('pf' => 'dcCKEditor/imgs/icon.png')),
+	preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.dcCKEditor')).'/', $_SERVER['REQUEST_URI']),
+	$core->auth->check('admin,contentadmin', $core->blog->id)
 );
 
Index: plugins/dcLegacyEditor/_admin.php
===================================================================
--- plugins/dcLegacyEditor/_admin.php	(revision 2750)
+++ plugins/dcLegacyEditor/_admin.php	(revision 2825)
@@ -14,8 +14,8 @@
 
 $_menu['Plugins']->addItem('dcLegacyEditor',
-'plugin.php?p=dcLegacyEditor',
-'index.php?pf=dcLegacyEditor/icon.png',
-preg_match('/plugin.php\?p=dcLegacyEditor/', $_SERVER['REQUEST_URI']),
-$core->auth->check('admin,contentadmin', $core->blog->id)
+	$core->adminurl->get('admin.plugin.dcLegacyEditor'),
+	$core->adminurl->decode('load.plugin.file',array('pf' => 'dcLegacyEditor/icon.png')),
+	preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.dcLegacyEditor')).'/', $_SERVER['REQUEST_URI']),
+	$core->auth->check('admin,contentadmin', $core->blog->id)
 );
 
Index: plugins/importExport/_admin.php
===================================================================
--- plugins/importExport/_admin.php	(revision 2230)
+++ plugins/importExport/_admin.php	(revision 2825)
@@ -14,7 +14,7 @@
 $_menu['Plugins']->addItem(
 	__('Import/Export'),
-	'plugin.php?p=importExport',
-	'index.php?pf=importExport/icon.png',
-	preg_match('/plugin.php\?p=importExport(&.*)?$/',$_SERVER['REQUEST_URI']),
+	$core->adminurl->get('admin.plugin.importExport'),
+	$core->adminurl->decode('load.plugin.file',array('pf' => 'importExport/icon.png')),
+	preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.importExport')).'(&.*)?$/',$_SERVER['REQUEST_URI']),
 	$core->auth->check('admin',$core->blog->id)
 );
@@ -26,7 +26,7 @@
 	$favs->register('importExport', array(
 		'title' => __('Import/Export'),
-		'url' => 'plugin.php?p=importExport',
-		'small-icon' => 'index.php?pf=importExport/icon.png',
-		'large-icon' => 'index.php?pf=importExport/icon-big.png',
+		'url' => $core->adminurl->get('admin.plugin.importExport'),
+		'small-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'importExport/icon.png')),
+		'large-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'importExport/icon-big.png')),
 		'permissions' => 'admin'
 	));
Index: plugins/importExport/inc/class.dc.export.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.export.flat.php	(revision 2566)
+++ plugins/importExport/inc/class.dc.export.flat.php	(revision 2825)
@@ -204,5 +204,5 @@
 		'</p>'.
 
-		'<p class="zip-dl"><a href="media.php?d=&amp;zipdl=1">'.
+		'<p class="zip-dl"><a href="'.$this->core->decode('admin.media',array('d' => '','zipdl' => '1')).'">'.
 		__('You may also want to download your media directory as a zip file').'</a></p>'.
 
Index: plugins/importExport/inc/class.dc.ieModule.php
===================================================================
--- plugins/importExport/inc/class.dc.ieModule.php	(revision 2566)
+++ plugins/importExport/inc/class.dc.ieModule.php	(revision 2825)
@@ -74,6 +74,6 @@
 		'<h3>'.__('Congratulation!').'</h3>'.
 		'<p class="success">'.__('Your blog has been successfully imported. Welcome on Dotclear 2!').'</p>'.
-		'<ul><li><strong><a href="post.php">'.__('Why don\'t you blog this now?').'</a></strong></li>'.
-		'<li>'.__('or').' <a href="index.php">'.__('visit your dashboard').'</a></li></ul>';
+		'<ul><li><strong><a href="'.$this->core->decode('admin.post').'">'.__('Why don\'t you blog this now?').'</a></strong></li>'.
+		'<li>'.__('or').' <a href="'.$this->core->decode('admin.home').'">'.__('visit your dashboard').'</a></li></ul>';
 	}
 }
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 2566)
+++ plugins/importExport/index.php	(revision 2825)
@@ -63,6 +63,6 @@
 <head>
 	<title>'.$title.'</title>
-	<link rel="stylesheet" type="text/css" href="index.php?pf=importExport/style.css" />
-	'.dcPage::jsLoad('index.php?pf=importExport/js/script.js').'
+	<link rel="stylesheet" type="text/css" href="'.$core->adminurl->decode('load.plugin.file',array('pf' => 'mportExport/style.css')).'" />
+	'.dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'importExport/js/script.js'))).'
 	<script type="text/javascript">
 	//<![CDATA[
@@ -103,5 +103,5 @@
 	'<p class="info">'.sprintf(
 		__('Export functions are in the page %s.'),
-		'<a href="plugin.php?p=maintenance&amp;tab=backup#backup">'.__('Maintenance').'</a>'
+		'<a href="'.$core->adminurl->decode('admin.plugin.maintenance',array('tab' => 'backup')).'#backup">'.__('Maintenance').'</a>'
 	).'</p>';
 }
Index: plugins/maintenance/_admin.php
===================================================================
--- plugins/maintenance/_admin.php	(revision 2566)
+++ plugins/maintenance/_admin.php	(revision 2825)
@@ -15,7 +15,7 @@
 $_menu['Plugins']->addItem(
 	__('Maintenance'),
-	'plugin.php?p=maintenance',
-	'index.php?pf=maintenance/icon.png',
-	preg_match('/plugin.php\?p=maintenance(&.*)?$/', $_SERVER['REQUEST_URI']),
+	$core->adminurl->get('admin.plugin.maintenance'),
+	$core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/icon.png')),
+	preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.maintenance')).'(&.*)?$/', $_SERVER['REQUEST_URI']),
 	$core->auth->check('admin', $core->blog->id)
 );
@@ -82,7 +82,7 @@
 		$favs->register('maintenance', array(
 			'title' => __('Maintenance'),
-			'url' => 'plugin.php?p=maintenance',
-			'small-icon' => 'index.php?pf=maintenance/icon.png',
-			'large-icon' => 'index.php?pf=maintenance/icon-big.png',
+			'url' => $core->adminurl->get('admin.plugin.maintenance'),
+			'small-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/icon.png')),
+			'large-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/icon-big.png')),
 			'permissions' => 'admin',
 			'active_cb' => array('dcMaintenanceAdmin', 'adminDashboardFavoritesActive'),
@@ -134,5 +134,5 @@
 
 		$fav['title'] .= '<br />'.sprintf(__('One task to execute', '%s tasks to execute', $count), $count);
-		$fav['large-icon'] = 'index.php?pf=maintenance/icon-big-update.png';
+		$fav['large-icon'] =$core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/icon-big-update.png'));
 	}
 
@@ -177,8 +177,8 @@
 		$items[] = new ArrayObject(array(
 			'<div id="maintenance-expired" class="box small">'.
-			'<h3><img src="index.php?pf=maintenance/icon-small.png" alt="" /> '.__('Maintenance').'</h3>'.
+			'<h3><img src="'.$core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/icon-small.png')).'" alt="" /> '.__('Maintenance').'</h3>'.
 			'<p class="warning no-margin">'.sprintf(__('There is a task to execute.', 'There are %s tasks to execute.', count($lines)), count($lines)).'</p>'.
 			'<ul>'.implode('',$lines).'</ul>'.
-			'<p><a href="plugin.php?p=maintenance">'.__('Manage tasks').'</a></p>'.
+			'<p><a href="'.$core->adminurl->get('admin.plugin.maintenance').'">'.__('Manage tasks').'</a></p>'.
 			'</div>'
 			));
@@ -310,5 +310,5 @@
 	{
 		if ($module == 'maintenance') {
-			return dcPage::jsLoad('index.php?pf=maintenance/js/settings.js');
+			return dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/js/settings.js')));
 		}
 	}
Index: plugins/maintenance/inc/class.dc.maintenance.php
===================================================================
--- plugins/maintenance/inc/class.dc.maintenance.php	(revision 2566)
+++ plugins/maintenance/inc/class.dc.maintenance.php	(revision 2825)
@@ -26,5 +26,5 @@
 {
 	public $core;
-	public $p_url = 'plugin.php?p=maintenance';
+	public $p_url;
 
 	private $tasks = array();
@@ -41,4 +41,5 @@
 	{
 		$this->core = $core;
+		$this->p_url = $core->adminurl->get('admin.plugin.maintenance');
 		$logs = $this->getLogs();
 		$this->init();
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 2566)
+++ plugins/maintenance/index.php	(revision 2825)
@@ -20,5 +20,5 @@
 
 $headers = '';
-$p_url = 'plugin.php?p=maintenance';
+$p_url = $core->adminurl->get('admin.plugin.maintenance');
 $task = null;
 $expired = array();
@@ -117,5 +117,5 @@
 <title>'.__('Maintenance').'</title>'.
 dcPage::jsPageTabs($tab).
-dcPage::jsLoad('index.php?pf=maintenance/js/settings.js');
+dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/js/settings.js')));
 
 if ($task && $task->ajax()) {
@@ -126,5 +126,5 @@
 	"//]]>\n".
 	'</script>'.
-	dcPage::jsLoad('index.php?pf=maintenance/js/dc.maintenance.js');
+	dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'maintenance/js/dc.maintenance.js')));
 }
 
@@ -299,5 +299,5 @@
 	'<p class="info">'.sprintf(
 		__('You can place list of late tasks on your %s.'),
-		'<a href="preferences.php#user-favorites">'.__('Dashboard').'</a>'
+		'<a href="'.$core->adminurl->get('admin.user.preferences').'#user-favorites">'.__('Dashboard').'</a>'
 	).'</p>'.
 
Index: plugins/pages/_admin.php
===================================================================
--- plugins/pages/_admin.php	(revision 2566)
+++ plugins/pages/_admin.php	(revision 2825)
@@ -21,7 +21,7 @@
 		$favs->register('pages', array(
 			'title' => __('Pages'),
-			'url' => 'plugin.php?p=pages',
-			'small-icon' => 'index.php?pf=pages/icon.png',
-			'large-icon' => 'index.php?pf=pages/icon-big.png',
+			'url' => $core->adminurl->get('admin.plugin.pages'),
+			'small-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'pages/icon.png')),
+			'large-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'pages/icon-big.png')),
 			'permissions' => 'contentadmin,pages',
 			'dashboard_cb' => array('pagesDashboard','pagesDashboardCB'),
@@ -30,7 +30,7 @@
 		$favs->register('newpage', array(
 			'title' => __('New page'),
-			'url' => 'plugin.php?p=pages&amp;act=page',
-			'small-icon' => 'index.php?pf=pages/icon-np.png',
-			'large-icon' => 'index.php?pf=pages/icon-np-big.png',
+			'url' => $core->adminurl->get('admin.plugin.pages',array('act' => 'page')),
+			'small-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'pages/icon-np.png')),
+			'large-icon' => $core->adminurl->decode('load.plugin.file',array('pf' => 'pages/icon-np-big.png')),
 			'permissions' => 'contentadmin,pages',
 			'active_cb' => array('pagesDashboard','newPageActiveCB')
@@ -70,7 +70,9 @@
 }
 
-$_menu['Blog']->addItem(__('Pages'),'plugin.php?p=pages','index.php?pf=pages/icon.png',
-		preg_match('/plugin.php(.*)$/',$_SERVER['REQUEST_URI']) && !empty($_REQUEST['p']) && $_REQUEST['p']=='pages',
-		$core->auth->check('contentadmin,pages',$core->blog->id));
+$_menu['Blog']->addItem(__('Pages'),
+	$core->adminurl->get('admin.plugin.pages'),
+	$core->adminurl->decode('load.plugin.file',array('pf' => 'pages/icon.png')),
+	preg_match('/plugin.php(.*)$/',$_SERVER['REQUEST_URI']) && !empty($_REQUEST['p']) && $_REQUEST['p']=='pages',
+	$core->auth->check('contentadmin,pages',$core->blog->id));
 
 $core->auth->setPermissionType('pages',__('manage pages'));
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 2567)
+++ plugins/pages/list.php	(revision 2825)
@@ -58,5 +58,5 @@
   		dcPage::jsLoad('js/jquery/jquery-ui.custom.js').
 		dcPage::jsLoad('js/jquery/jquery.ui.touch-punch.js').
-		dcPage::jsLoad('index.php?pf=pages/list.js').
+		dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'pages/list.js'))).
 		'<script type="text/javascript">'.
 		"\n".'//<![CDATA['."\n".
@@ -90,5 +90,5 @@
 	# Show pages
 	$post_list->display($page,$nb_per_page,
-	'<form action="plugin.php" method="post" id="form-entries">'.
+	'<form action="'.$core->adminurl->get('admin.plugin').'" method="post" id="form-entries">'.
 
 	'%s'.
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 2788)
+++ plugins/pages/page.php	(revision 2825)
@@ -530,5 +530,5 @@
 	} else {
 		echo
-		'<a id="post-cancel" href="index.php" class="button" accesskey="c">'.__('Cancel').' (c)</a>';
+		'<a id="post-cancel" href="'.$core->adminurl->get('admin.home').'" class="button" accesskey="c">'.__('Cancel').' (c)</a>';
 	}
 
@@ -563,5 +563,5 @@
 	{
 		echo
-		'<form action="post_media.php" id="attachment-remove-hide" method="post">'.
+		'<form action="'.$core->adminurl->get('admin.post.media').'" id="attachment-remove-hide" method="post">'.
 		'<div>'.form::hidden(array('post_id'),$post_id).
 		form::hidden(array('media_id'),'').
@@ -643,5 +643,5 @@
 	'<h3>'.__('Add a comment').'</h3>'.
 
-	'<form action="comment.php" method="post" id="comment-form">'.
+	'<form action="'.$core->adminurl->get('admin.comment').'" method="post" id="comment-form">'.
 	'<div class="constrained">'.
 	'<p><label for="comment_author" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Name:').'</label>'.
@@ -697,4 +697,6 @@
 function showComments($rs,$has_action)
 {
+	global $core;
+
 	echo
 	'<table class="comments-list"><tr>'.
@@ -708,5 +710,5 @@
 	while($rs->fetch())
 	{
-		$comment_url = 'comment.php?id='.$rs->comment_id;
+		$comment_url = $core->adminurl->decode('admin.comment',array('id' => $rs->comment_id));
 
 		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
@@ -734,5 +736,5 @@
 		'<td class="maximal">'.$rs->comment_author.'</td>'.
 		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$rs->comment_dt).'</td>'.
-		'<td class="nowrap"><a href="comments.php?ip='.$rs->comment_ip.'">'.$rs->comment_ip.'</a></td>'.
+		'<td class="nowrap"><a href="'.$core->adminurl->decode('admin.comment',array('ip' => $rs->comment_ip)).'">'.$rs->comment_ip.'</a></td>'.
 		'<td class="nowrap status">'.$img_status.'</td>'.
 		'<td class="nowrap status"><a href="'.$comment_url.'">'.
Index: plugins/pings/lib.pings.php
===================================================================
--- plugins/pings/lib.pings.php	(revision 2566)
+++ plugins/pings/lib.pings.php	(revision 2825)
@@ -33,8 +33,10 @@
 	public static function pingJS()
 	{
+		global $core;
+
 		$res =
 		"<script type=\"text/javascript\">\n//<![CDATA[\n".
 		dcPage::jsVar('dotclear.msg.check_all',__('Check all'))."\n".
-		"</script>\n".dcPage::jsLoad('index.php?pf=pings/post.js');
+		"</script>\n".dcPage::jsLoad($core->adminurl->decode('load.plugin.file',array('pf' => 'pings/post.js')));
 
 		return $res;
