diff --git a/inc/common.php b/inc/common.php
index 0c769c50da9534b97b946affeb30f73613ac4e35..26904dd46d03f2e54095e92a610dae35db659fd5 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -323,12 +323,14 @@ function idfilter($id,$ue=true){
     if ($conf['useslash'] && $conf['userewrite']){
         $id = strtr($id,':','/');
     }elseif (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' &&
-            $conf['userewrite']) {
+            $conf['userewrite'] && 
+            strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') === false) {
         $id = strtr($id,':',';');
     }
     if($ue){
         $id = rawurlencode($id);
         $id = str_replace('%3A',':',$id); //keep as colon
+        $id = str_replace('%3B',';',$id); //keep as semicolon
         $id = str_replace('%2F','/',$id); //keep as slash
     }
     return $id;