diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php
index cd2973e54c9f3e9641d796ef68e6e5149fee67eb..a32892079143b40313e0225e0585a1ae69a2a4ba 100644
--- a/htdocs/lib/functions.lib.php
+++ b/htdocs/lib/functions.lib.php
@@ -116,7 +116,7 @@ function dol_buildpath($path,$mode=0)
 			// FIXME Trying to know if a file on disk exist by forging path on disk from url
 			// works only for some web server and some setup. This is bugged when
 			// using proxy, rewriting, virtual path, etc...
-			preg_match('/^([^.]+(\.css)?\.php)/i',$path,$regs);
+			preg_match('/^([^.]+(\.css)?(\.php)?(\.js)?)/i',$path,$regs);
 			if (! empty($regs[1])) $filepath = $regs[1];
 			// An alternative for proxy but extremely slow
 			//$url = 'http://'.$_SERVER["SERVER_NAME"].DOL_URL_ROOT.$path;
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index 6e510b273486f8a0750610919e1094582f39738b..c2f098157fbf9ae611b9aa3ec6f39fbebfb5225f 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -855,7 +855,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
 		{
 			foreach($arrayofcss as $cssfile)
 			{
-				print '<link rel="stylesheet" type="text/css" title="default" href="'.DOL_URL_ROOT.$cssfile.'?lang='.$langs->defaultlang.'&theme='.$conf->theme.(! empty($_GET["optioncss"])?'&optioncss='.$_GET["optioncss"]:'').'">'."\n";
+				print '<link rel="stylesheet" type="text/css" title="default" href="'.dol_buildpath($cssfile,1).'?lang='.$langs->defaultlang.'&theme='.$conf->theme.(! empty($_GET["optioncss"])?'&optioncss='.$_GET["optioncss"]:'').'">'."\n";
 			}
 		}
 
@@ -894,7 +894,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
 			foreach($arrayofjs as $jsfile)
 			{
 				if (! preg_match('/^\//',$jsfile)) $jsfile='/'.$jsfile;	// For backward compatibility
-				print '<script type="text/javascript" src="'.$jsfile.'"></script>'."\n";
+				print '<script type="text/javascript" src="'.dol_buildpath($jsfile,1).'"></script>'."\n";
 			}
 		}