diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffUrl.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffUrl.xml
index e1184919b9dd0f321b8dc63f855d71693138d254..522bf03f941b6ee61902ce8fe52fc65a9f30f334 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffUrl.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffUrl.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PythonScripts.PythonScript</string>
-          <string>PythonScript</string>
-        </tuple>
-        <none/>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -71,10 +68,12 @@
             <value> <string encoding="cdata"><![CDATA[
 
 if brain.object_state == \'Modified\':\n
+  target_object = brain.getObject()\n
+  parent_absolute_path = target_object.aq_parent.absolute_url()\n
   if hasattr(brain, \'bt1\'):\n
-    return \'/\'.join(brain.getPhysicalPath()[:-1])+\'/BusinessTemplate_viewObjectsDiff?object_id=\'+brain.object_id+\'&object_class=\'+brain.object_class+\'&bt1=\'+brain.bt1+\'&bt2=\'+brain.bt2\n
+    return parent_absolute_path+\'/BusinessTemplate_viewObjectsDiff?object_id=\'+brain.object_id+\'&object_class=\'+brain.object_class+\'&bt1=\'+brain.bt1+\'&bt2=\'+brain.bt2\n
   else:\n
-    return \'/\'.join(brain.getPhysicalPath()[:-1])+\'/BusinessTemplate_viewObjectsDiff?object_id=\'+brain.object_id+\'&object_class=\'+brain.object_class\n
+    return parent_absolute_path+\'/BusinessTemplate_viewObjectsDiff?object_id=\'+brain.object_id+\'&object_class=\'+brain.object_class\n
 else:\n
   return None\n
 
@@ -131,8 +130,9 @@ else:\n
                             <string>selection</string>
                             <string>selection_name</string>
                             <string>_getattr_</string>
+                            <string>target_object</string>
+                            <string>parent_absolute_path</string>
                             <string>hasattr</string>
-                            <string>_getitem_</string>
                             <string>None</string>
                           </tuple>
                         </value>
diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_getTrashObjectUrl.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_getTrashObjectUrl.xml
index eeb8314c27a969744e85b0c32517c50e949aaf56..2c2a788c20153d00077ca036005daee0a8fc54a8 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_getTrashObjectUrl.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_getTrashObjectUrl.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.PythonScripts.PythonScript</string>
-          <string>PythonScript</string>
-        </tuple>
-        <none/>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -68,7 +65,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>return \'/\'.join(brain.getPhysicalPath()[4:])+\'/manage_workspace\'\n
+            <value> <string>return brain.absolute_url()+\'/manage_workspace\'\n
 </string> </value>
         </item>
         <item>
@@ -91,7 +88,7 @@
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>brain, selection</string> </value>
+            <value> <string>brain, selection, selection_name</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -111,7 +108,7 @@
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>2</int> </value>
+                        <value> <int>3</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
@@ -119,8 +116,8 @@
                           <tuple>
                             <string>brain</string>
                             <string>selection</string>
+                            <string>selection_name</string>
                             <string>_getattr_</string>
-                            <string>_getitem_</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_viewTrashObject/listbox_url.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_viewTrashObject/listbox_url.xml
index 46c0bf8e9c1400edd4fd117d0b7c3d79cae2d110..fda0633a5ca3e3687fc612667464d9ba325a3e53 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_viewTrashObject/listbox_url.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/TrashBin_viewTrashObject/listbox_url.xml
@@ -3,11 +3,8 @@
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.Formulator.StandardFields</string>
-          <string>StringField</string>
-        </tuple>
-        <none/>
+        <global name="StringField" module="Products.Formulator.StandardFields"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
@@ -268,18 +265,15 @@
   <record id="2" aka="AAAAAAAAAAI=">
     <pickle>
       <tuple>
-        <tuple>
-          <string>Products.Formulator.TALESField</string>
-          <string>TALESMethod</string>
-        </tuple>
-        <none/>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
       </tuple>
     </pickle>
     <pickle>
       <dictionary>
         <item>
             <key> <string>_text</string> </key>
-            <value> <string>python: \'/\'.join(cell.getPhysicalPath()[4:])</string> </value>
+            <value> <string>python:\'/\'.join(context.portal_url.getRelativeContentPath(cell)[2:])</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/product/ERP5/bootstrap/erp5_core/bt/change_log b/product/ERP5/bootstrap/erp5_core/bt/change_log
index eea58f41bb223474e6dca09a40cabcf1390cfd12..0a8cf19b436a4daa4b07343c80f80bdde013d644 100644
--- a/product/ERP5/bootstrap/erp5_core/bt/change_log
+++ b/product/ERP5/bootstrap/erp5_core/bt/change_log
@@ -1,5 +1,6 @@
 2008-03-17 Yusei
 * erp5_core provides general good set of content type registry by default, until we have to handle content type registry seriously.
+* Fixed wrong url on virtual host environment.
 
 2008-03-14 Yusei
 * Remove portal_contributions. erp5_ingestion will provides the tool.
diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision
index 5cd7ca2206dabce480b971122efe38f183187674..b02454449c8cae01aa9a1ce93c15cd4c90e8a117 100644
--- a/product/ERP5/bootstrap/erp5_core/bt/revision
+++ b/product/ERP5/bootstrap/erp5_core/bt/revision
@@ -1 +1 @@
-748
\ No newline at end of file
+749
\ No newline at end of file