diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_dialog.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_dialog.xml
index 69f8ead6fe48ca4927dd79de2e583edd22260de8..cca45d89d59e37219b89878eccae9b5bba2103fb 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_dialog.xml
@@ -79,24 +79,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
 \n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-    xml:lang="en"\n
-    xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-    xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-    xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-    metal:use-macro="here/dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-      <meta name="description" content="Generated by form_dialog" />\n
-      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-      <title tal:content="template/title_or_id" i18n:translate="" i18n:domain="ui">The title</title>\n
-      <link href="erp5.css" rel="stylesheet" type="text/css"/>\n
-  </head>\n
-\n
-  <body><div metal:fill-slot="main">\n
-          <div class="Search">\n
-\n
-\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
+    <div class="Search">\n
 <span tal:define="groups python: form.get_groups(include_empty=1);\n
                   field_errors python: request.get(\'field_errors\',{});\n
                   params python: here.portal_selections.getSelectionParams(selection_name, REQUEST=request);\n
@@ -289,11 +280,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
     </span>\n
   </span>\n
 </span>\n
-          </div>\n
-      </div>\n
-  </body>\n
-</html>\n
-
+    </div>\n
+  </tal:block>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -309,6 +299,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             <key> <string>id</string> </key>
             <value> <string>form_dialog</string> </value>
         </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
       </dictionary>
     </pickle>
   </record>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_folder_delete.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_folder_delete.xml
index 3bcf4b904d4c6b15b6e3fbb332f69155a6d74fa5..a999b0579de56a05ce185284c18561df783c49ef 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_folder_delete.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_folder_delete.xml
@@ -72,29 +72,18 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      metal:use-macro="here/list_dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-      <meta name="description" content="Generated by form_folder_delete" />\n
-      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-      <title tal:content="template/title_or_id" i18n:translate="" i18n:domain="ui">The title</title>\n
-      <link href="erp5.css" rel="stylesheet" type="text/css"/>\n
-  </head>\n
-\n
-  <body><div metal:fill-slot="main">\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:list_dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
           <div class="Search">\n
-\n
-\n
 <span tal:define="groups python: form.get_groups(include_empty=1);\n
                   field_errors python: request.get(\'field_errors\',{});\n
                   dummy python: request.set(\'here\',here)">\n
-\n
       <table width="100%">\n
         <span tal:repeat="field python:form.get_fields_in_group(groups[0])">\n
         <tr>\n
@@ -110,16 +99,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
         </tr>\n
         </span>\n
       </table>\n
-\n
 </span>\n
-\n
       <input type="hidden" name="selection_index" value="" tal:attributes="value request/selection_index | string:">\n
       <input type="hidden" name="object_uid" value="" tal:attributes="value request/object_uid">\n
-\n
           </div>\n
-      </div>\n
-  </body>\n
-</html>\n
+  </tal:block>\n
+</tal:block>\n
+</tal:block>\n
 
 
 ]]></string> </value>
@@ -136,6 +122,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             <key> <string>id</string> </key>
             <value> <string>form_folder_delete</string> </value>
         </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
       </dictionary>
     </pickle>
   </record>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list.xml
index df82d6651b1e9b3547637cac3c32bc926e8142c1..769191c34238a2397cc09f8faf8af60dcc92e6ef 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list.xml
@@ -72,7 +72,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
                        editable_mode request/editable_mode | nothing;\n
                        global ignore_layout request/ignore_layout | nothing;\n
                        global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
-                       layout_id layout_form/pt | string:list_master">\n
+                       default_layout string:list_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
 <tal:block tal:condition="python: not layout_form_id or ignore_layout">\n
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">\n
 <?xml-stylesheet  href="erp5.css" rel="stylesheet" type="text/css"?>\n
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_dialog.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_dialog.xml
index be8bdddbb14bfe6492ad9c97a85d1416b3bb5f04..49090376e9726e67463e4cb5192a2e3d8368a138 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_dialog.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_dialog.xml
@@ -72,22 +72,14 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      metal:use-macro="here/list_dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-      <meta name="description" content="Generated by form_list_dialog" />\n
-      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-      <title tal:content="template/title_or_id" i18n:translate="" i18n:domain="ui">The title</title>\n
-      <link href="erp5.css" rel="stylesheet" type="text/css"/>\n
-  </head>\n
-\n
-  <body><div metal:fill-slot="main">\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:list_dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
           <div class="Search">\n
 \n
 \n
@@ -280,10 +272,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 </span>\n
 \n
           </div>\n
-      </div>\n
-  </body>\n
-</html>\n
-
+  </tal:block>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -299,6 +290,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             <key> <string>id</string> </key>
             <value> <string>form_list_dialog</string> </value>
         </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
       </dictionary>
     </pickle>
   </record>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_relation.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_relation.xml
index 0c101dbb7c5b5bb08c534d747a536ff8ff73d1f8..89dcc2aa652712d67db16925580b7cfaf8467e3a 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_relation.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_relation.xml
@@ -48,10 +48,6 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n
- "DTD/xhtml1-strict.dtd">\n
-<?xml-stylesheet  href="erp5.css" rel="stylesheet" type="text/css"?>\n
-\n
 <span tal:replace="nothing">\n
 <!--\n
 Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.\n
@@ -72,60 +68,50 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      metal:use-macro="here/list_dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-      <meta name="description" content="Generated by form_list_relation" />\n
-      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-      <title tal:content="template/title_or_id"     xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
->The title</title>\n
-      <link href="erp5.css" rel="stylesheet" type="text/css"/>\n
-  </head>\n
-\n
-  <body><div metal:fill-slot="main">\n
-          <div class="Search" tal:define="form_pickle request/form_pickle | nothing;\n
-                                          form_signature request/form_signature | nothing;">\n
-\n
-\n
-<span tal:define="groups form/get_groups;\n
-                  field_errors python: request.get(\'field_errors\',{});\n
-                  dummy python: request.set(\'here\',here);" >\n
-\n
-      <table width="100%">\n
-        <span tal:repeat="field python:form.get_fields_in_group(groups[0])">\n
-        <tr>\n
-          <td tal:define="value python:request.get(field.id,None)">\n
-            <span tal:replace="structure python:field.render(value,request)" />\n
-          </td>\n
-        </tr>\n
-        <tr tal:condition="python: field_errors.has_key(field.id)">\n
-          <td tal:content="python: field_errors[field.id].error_text"\n
-              i18n:translate="" i18n:domain="ui"\n
-              class="error">\n
-          </td>\n
-        </tr>\n
-        </span>\n
-      </table>\n
-\n
-</span>\n
-\n
-      <input type="hidden" name="form_pickle" value="" tal:attributes="value form_pickle | nothing" tal:condition="form_pickle | nothing"/>\n
-      <input type="hidden" name="form_signature" value="" tal:attributes="value form_signature | nothing" tal:condition="form_signature | nothing"/>\n
-      <input type="hidden" name="selection_index" value="" tal:attributes="value request/selection_index | nothing">\n
-      <input type="hidden" name="object_uid" value="" tal:attributes="value request/object_uid">\n
-      <input type="hidden" name="field_id" value="" tal:attributes="value request/field_id">\n
-\n
-          </div>\n
-      </div>\n
-  </body>\n
-</html>\n
-
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode python:1;\n
+                       dummy python:request.set(\'editable_mode\', editable_mode);\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:list_dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block tal:condition="python: not layout_form_id or ignore_layout">\n
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n
+ "DTD/xhtml1-strict.dtd">\n
+<?xml-stylesheet  href="erp5.css" rel="stylesheet" type="text/css"?>\n
+</tal:block>\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <div metal:fill-slot="main">\n
+    <div class="Search" tal:define="form_pickle request/form_pickle | nothing;\n
+                                    form_signature request/form_signature | nothing;">\n
+      <span tal:define="groups form/get_groups;\n
+                        field_errors python: request.get(\'field_errors\',{});\n
+                        dummy python: request.set(\'here\',here);" >\n
+        <table width="100%">\n
+          <span tal:repeat="field python:form.get_fields_in_group(groups[0])">\n
+            <tr>\n
+              <td tal:define="value python:request.get(field.id,None)">\n
+                <tal:block tal:replace="structure python:field.render(value,request)" />\n
+              </td>\n
+            </tr>\n
+            <tr tal:condition="python: field_errors.has_key(field.id)">\n
+              <td tal:content="python: field_errors[field.id].error_text"\n
+                  i18n:translate="" i18n:domain="ui"\n
+                  class="error">\n
+              </td>\n
+            </tr>\n
+          </span>\n
+        </table>\n
+      </span>\n
+      <input type="hidden" name="form_pickle" tal:attributes="value form_pickle | nothing" tal:condition="form_pickle | nothing"/>\n
+      <input type="hidden" name="form_signature" tal:attributes="value form_signature | nothing" tal:condition="form_signature | nothing"/>\n
+      <input type="hidden" name="selection_index" tal:attributes="value request/selection_index | nothing">\n
+      <input type="hidden" name="object_uid" tal:attributes="value request/object_uid">\n
+      <input type="hidden" name="field_id" tal:attributes="value request/field_id">\n
+    </div>\n
+  </div>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_ui.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_ui.xml
index 1b9502b84aeef4ea50366202ed2870f063c40d9c..99837c70db78b14e839537d2436a5ef0af50af53 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_ui.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_list_ui.xml
@@ -72,26 +72,14 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      metal:use-macro="here/list_dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-    <meta name="description" content="Generated by form_list_ui" />\n
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-    <title tal:content="template/title_or_id"\n
-           i18n:translate="" i18n:domain="ui">\n
-      The title\n
-    </title>\n
-    <link href="erp5.css" rel="stylesheet" type="text/css" />\n
-  </head>\n
-\n
-  <body>\n
-    <div metal:fill-slot="main">\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:list_dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
       <div class="Search">\n
         <span tal:define="field_errors python: request.get(\'field_errors\',{});\n
               form_id request/form_id;\n
@@ -203,11 +191,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 \n
         </span>\n
       </div>\n
-    </div>\n
-  </body>\n
-\n
-</html>\n
-
+  </tal:block>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -223,6 +209,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             <key> <string>id</string> </key>
             <value> <string>form_list_ui</string> </value>
         </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
       </dictionary>
     </pickle>
   </record>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_sort.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_sort.xml
index 149b3122dd668f6fa68be038d40c422c1558dc3f..171f7905dd37f1b50265a3eaf0b4964b717bc07e 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_sort.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_sort.xml
@@ -72,28 +72,15 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      metal:use-macro="here/list_dialog_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-    <meta name="description" content="Generated by form_sort" />\n
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-    <title tal:content="template/title_or_id"\n
-           i18n:translate="" i18n:domain="ui">\n
-      The title\n
-    </title>\n
-    <link href="erp5.css" rel="stylesheet" type="text/css" />\n
-  </head>\n
-\n
-  <body><div metal:fill-slot="main">\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:list_dialog_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
           <div class="Search">\n
-\n
-\n
 <span tal:define="groups python: form.get_groups(include_empty=1);\n
                   sort_on python:here.portal_selections.getSelectionSortOrder(selection_name, REQUEST=request);\n
                   dummy python: request.set(\'here\',here);\n
@@ -163,9 +150,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 </span>\n
 \n
           </div>\n
-      </div>\n
-  </body>\n
-</html>\n
+  </tal:block>\n
+</tal:block>\n
+</tal:block>\n
 
 
 ]]></string> </value>
@@ -182,6 +169,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
             <key> <string>id</string> </key>
             <value> <string>form_sort</string> </value>
         </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
       </dictionary>
     </pickle>
   </record>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/index_html.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/index_html.xml
index 10e6c081e0f7212bc00e1672d89198eeb157199b..90a0fd6b260e222d0bdd3b2eda214f89ab0204c3 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/index_html.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/index_html.xml
@@ -72,26 +72,14 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </span>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      metal:use-macro="here/main_template/macros/master">\n
- <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-  <meta name="description" content="Generated by index_html" />\n
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\n
-  <title i18n:translate="" i18n:domain="ui">ERP5 Front Page</title>\n
-  <link href="erp5.css" rel="stylesheet" type="text/css" />\n
- </head>\n
-\n
-<body style="position: relative">\n
-<div metal:fill-slot="header">\n
-</div><!-- header slot -->\n
-\n
-<div metal:fill-slot="main">\n
-\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:main_template;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
   <div id="content_well"\n
        style="float: left; top: 0; width: 80%;">\n
 \n
@@ -131,15 +119,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
     <span tal:condition="python: here.portal_membership.isAnonymousUser()">\n
       <p tal:define="dummy python:request.RESPONSE.redirect(\'%s/login_form\' % here.absolute_url())"/>\n
     </span>\n
-\n
   </div>\n
-\n
-</div>\n
-\n
-\n
-</body>\n
-</html>\n
-
+  </tal:block>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/logged_in.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/logged_in.xml
index 2dd2197170144e73c2cffd67305c11fb319c5e23..a3b11c98d193f16e6b33187fdb4ff16b5a368356 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/logged_in.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/logged_in.xml
@@ -50,30 +50,24 @@
 
 <tal:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
            tal:define="dummy here/setupCurrentSkin" />\n
-\n
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      metal:use-macro="here/main_template/macros/master">\n
-<body>\n
-\n
-<div metal:fill-slot="main" i18n:domain="ui">\n
-\n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:main_template;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
  <div tal:define="p_props here/portal_properties;\n
                   p_url here/portal_url;\n
                   mtool here/portal_membership;\n
                   isAnon mtool/isAnonymousUser|nothing;\n
                   member mtool/getAuthenticatedMember;\n
                   now here/ZopeTime;\n
-                  never string:2000/01/01;\n
-                 "\n
- >\n
-\n
+                  never string:2000/01/01;">\n
   <div tal:condition="isAnon">\n
-\n
    <span tal:define="dummy python:request[\'RESPONSE\'].expireCookie(\'__ac\'\n
-                                                                  , path=\'/\')"\n
-   />\n
-\n
+                                                                  , path=\'/\')"/>\n
    <h1 class="DesktopTitle" i18n:translate="">Login failure</h1>\n
 \n
    <p class="Desktop" i18n:translate="">You are not currently logged in. Your\n
@@ -171,11 +165,9 @@
   </div><!-- not isAnon -->\n
 \n
  </div><!-- define p_props -->\n
-\n
-</div><!-- metal:fill-slot="main" -->\n
-\n
-</body>\n
-</html>
+  </tal:block>\n
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/login_form.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/login_form.xml
index 13bf52c7c89a8c387d888b5c6be043847e46de65..a8ac266a3541d6107eacda7b1d83e273bd0fbf39 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/login_form.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/login_form.xml
@@ -69,7 +69,8 @@
                        ignore_layout request/ignore_layout | nothing;\n
                        editable_mode request/editable_mode | nothing;\n
                        layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
-                       layout_id layout_form/pt | string:main_template;"\n
+                       default_layout string:main_template;\n
+                       layout_id layout_form/pt | default_layout;"\n
            i18n:domain="ui">\n
 <tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
 <tal:block metal:fill-slot="main">\n
diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/quad_form_view.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/quad_form_view.xml
index 9850a374f088c8a161668b0184da5b2d6ac54b02..0f5d1e87a949e339c4288c68c1dfb015fc640cec 100644
--- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/quad_form_view.xml
+++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/quad_form_view.xml
@@ -85,26 +85,14 @@ along with this program; if not, write to the Free Software\n
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
 -->\n
 </tal:block>\n
-\n
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n
-      xml:lang="en"\n
-      xmlns:tal="http://xml.zope.org/namespaces/tal"\n
-      xmlns:metal="http://xml.zope.org/namespaces/metal"\n
-      xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n
-      metal:use-macro="here/view_master/macros/master">\n
-\n
-  <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n
-    <meta name="description" content="Generated by form_view" />\n
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
-    <title tal:content="template/title_or_id"\n
-           i18n:translate="" i18n:domain="ui">\n
-      The title\n
-    </title>\n
-    <link href="erp5.css" rel="stylesheet" type="text/css" />\n
-  </head>\n
-  <body>\n
-\n
-    <tal:block metal:fill-slot="main">         \n
+<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n
+                       ignore_layout request/ignore_layout | nothing;\n
+                       editable_mode request/editable_mode | nothing;\n
+                       global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n
+                       default_layout string:view_master;\n
+                       layout_id layout_form/pt | default_layout;">\n
+<tal:block metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n
+  <tal:block metal:fill-slot="main">\n
       <div class="Main" metal:define-macro="form_layout">\n
         <tal:block tal:define="groups python: form.get_groups(include_empty=1);\n
                                field_errors python: request.get(\'field_errors\',{});\n
@@ -156,10 +144,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n
         </tal:block>\n
       </div>\n
     </tal:block>\n
-\n
-  </body>\n
-</html>\n
-
+</tal:block>\n
+</tal:block>
 
 ]]></string> </value>
         </item>
diff --git a/product/ERP5/bootstrap/erp5_html_style/bt/change_log b/product/ERP5/bootstrap/erp5_html_style/bt/change_log
index c60f8b36b4db0f13a76c51a18ca087ca9e7dbdce..bfa2c78051e386c3bc08aef243b96117183c7413 100644
--- a/product/ERP5/bootstrap/erp5_html_style/bt/change_log
+++ b/product/ERP5/bootstrap/erp5_html_style/bt/change_log
@@ -1,3 +1,6 @@
+2006-04-10 vincent
+* add layout support in all templates
+
 2006-03-04 jerome
 * stop translating portal status messages.