diff --git a/product/ERP5CPS/ERP5CPSBoxes.py b/product/ERP5CPS/ERP5CPSBoxes.py
new file mode 100755
index 0000000000000000000000000000000000000000..1020c411ad2f2d9a3aa48f195f2a41a4b24530c0
--- /dev/null
+++ b/product/ERP5CPS/ERP5CPSBoxes.py
@@ -0,0 +1,45 @@
+#!/usr/bin/python
+# Authors : Tarek Ziade tziade@nuxeo.com
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as published
+# # by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+
+boxes = {
+
+            'erp5cps_header': {'type':'Base Box',
+                                'title': 'En-tĂȘte page ERP5',
+                                'btype': 'header',
+                                'provider': 'erp5cps',
+                                'slot': 'top',
+                                'order': 1,
+                                  },
+
+            }
+
+
+guard_boxes = {'erp5cps_header': {'guard_permissions' : '',
+                                  'guard_roles' : 'Authenticated',
+                                  'guard_expr' : '',
+                                 },
+             }
+
+
+def getBoxes():
+    return boxes
+
+
+def getGuardBoxes():
+    return guard_boxes
+
+
diff --git a/product/ERP5CPS/ERP5CPSSite.py b/product/ERP5CPS/ERP5CPSSite.py
new file mode 100755
index 0000000000000000000000000000000000000000..47fd1d832203c25b3798ee28a0872d842a5cbd96
--- /dev/null
+++ b/product/ERP5CPS/ERP5CPSSite.py
@@ -0,0 +1,158 @@
+#
+# Authors : Tarek Ziade tziade@nuxeo.com
+#           Robin Sebastien seb@nexedi.com
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+#
+""" CPS ERP5 Portal
+"""
+
+import Globals
+from Globals import InitializeClass
+from zLOG import LOG, INFO, DEBUG
+from Products.ExternalMethod.ExternalMethod import ExternalMethod
+
+from Products.CMFDefault.Portal import PortalGenerator
+from Products.ERP5.ERP5Site import ERP5Generator
+from Products.CPSDefault.Portal import CPSDefaultSite
+from Products.CMFCore.utils import getToolByName
+
+from Products.ERP5.ERP5Site import ERP5Site
+
+from os import path
+
+
+
+
+manage_addERP5CPSSiteForm = Globals.HTMLFile(
+    'zmi/manage_addERP5CPSSite_form',
+    globals())
+
+def manage_addERP5CPSSite(dispatcher, id,
+                               title='ERP5 CPS Site',
+                               description='',
+                               langs_list=None,
+                               root_id='root',
+                               root_sn='CPS',
+                               root_givenName='Root',
+                               root_email='root@localhost',
+                               root_password1='',
+                               root_password2='',
+                               enable_portal_joining=1,
+                               sql_connection_type='Z MySQL Database Connection',
+                               sql_connection_string='test test',
+                               REQUEST=None):
+    """Add a Intranet SN Default Site."""
+
+    _log = []
+    def pr(bla, zlog=1, _log=_log):
+        if bla == 'flush':
+            return '\n'.join(_log)
+        _log.append(bla)
+        if (bla and zlog):
+            LOG('addERP5CPSSite:', INFO, bla)
+
+    if not root_password1:
+        raise ValueError, 'You have to fill CPS Administrator password!'
+
+    if root_password1 != root_password2:
+        raise ValueError, 'Password confirmation does not match password'
+
+    id = id.strip()
+    title = title.strip()
+    description = description.strip()
+    root_givenName = root_givenName.strip()
+    root_sn = root_sn.strip()
+    email_from_name = '%s %s' % (root_givenName, root_sn)
+    root_email = root_email.strip()
+
+    pr('Adding a ERP5CPS Site')
+    gen = ERP5CPSGenerator()
+    #portal = gen.create(dispatcher, id, 0,sql_connection_type,sql_connection_string)
+    portal = gen.create(dispatcher, id, 0)
+    gen.setupDefaultProperties(portal, title, description,
+                               email_from_address=root_email,
+                               email_from_name=email_from_name,
+                               validate_email=0)
+    portal.sql_connection_type = sql_connection_type
+    portal.sql_connection_string = sql_connection_string
+
+    pr('Creating cpsupdate External Method in CPS Site')
+    cpsupdate = ExternalMethod('cpsupdate',
+                               'CPSDefault Updater',
+                               'CPSDefault.cpsinstall',
+                               'cpsupdate')
+    portal._setObject('cpsupdate', cpsupdate)
+
+    pr('Creating benchmark External Method')
+    benchmarktimer = ExternalMethod('BenchmarkTimer',
+                                    'BenchmarkTimer',
+                                    'CPSDefault.benchmarktimer',
+                                    'BenchmarkTimerInstance')
+    portal._setObject('Benchmarktimer', benchmarktimer)
+
+    pr('Creating i18n Updater Support')
+    i18n_updater = ExternalMethod('i18n Updater',
+                                  'i18n Updater',
+                                  'CPSDefault.cpsinstall',
+                                  'cps_i18n_update')
+    portal._setObject('i18n Updater', i18n_updater)
+
+    pr('Executing CPSDefault Installer')
+    pr(portal.cpsupdate(langs_list=langs_list, is_creation=1 ), 0)
+
+    pr('Configuring CPSDefault Site')
+    # editProperties do not work with ZTC due to usage of REQUEST
+    # to send properties :/
+    # herve: REQUEST is a mapping. Have you checked using
+    #            REQUEST={'smtp_host': 'localhost'}
+    #        as an argument?
+    portal.MailHost.smtp_host = 'localhost'
+    portal.manage_changeProperties(smtp_server='localhost', REQUEST=None)
+
+    # Launching specific Intranet SN stuffs
+    pr('Launching CPS ERP5 Specifics')
+    ERP5CPS_installer = ExternalMethod('CPS ERP5 UPDATE',
+                                          'CPS ERP5 UPDATE',
+                                          'ERP5CPS.install',
+                                          'install')
+    portal._setObject('ERP5CPS_installer', ERP5CPS_installer)
+
+    pr(portal.ERP5CPS_installer(), 0)
+
+    pr('Done')
+    if REQUEST is not None:
+        REQUEST.RESPONSE.setHeader('Content-Type', 'text/plain')
+
+    return pr('flush')
+
+class ERP5CPSSite(CPSDefaultSite,ERP5Site):
+    """CPS ERP5 Site  variant of a CPS Default Site.
+    """
+    constructors = (manage_addERP5CPSSiteForm, manage_addERP5CPSSite, )
+    meta_type = 'ERP5 CPS Site'
+
+    icon = 'portal.gif'
+
+    enable_portal_joining = 0
+
+    _properties = CPSDefaultSite._properties
+
+InitializeClass(ERP5CPSSite)
+
+class ERP5CPSGenerator(PortalGenerator):
+    """Set up a CPS Site."""
+    klass = ERP5CPSSite
+
diff --git a/product/ERP5CPS/zmi/manage_addERP5CPSSite_form.dtml b/product/ERP5CPS/zmi/manage_addERP5CPSSite_form.dtml
new file mode 100755
index 0000000000000000000000000000000000000000..2c12b0f7eca013105a22f594478fcfaa3db793bc
--- /dev/null
+++ b/product/ERP5CPS/zmi/manage_addERP5CPSSite_form.dtml
@@ -0,0 +1,179 @@
+<dtml-let form_title="'Add ERP5 CPS Site'">
+<dtml-if manage_page_header>
+  <dtml-var manage_page_header>
+  <dtml-var manage_form_title>
+<dtml-else>
+  <html><head><title>&dtml-form_title;</title></head>
+  <body>
+  <h2>&dtml-form_title;</h2>
+</dtml-if>
+</dtml-let>
+
+<form action="manage_addERP5CPSSite" method="POST">
+<table cellspacing="0" cellpadding="2" border="0">
+  <tr>
+    <td align="left" valign="top" colspan="2">
+    <div class="form-help">
+      Fill this form to create a Intranet SN Portal.
+    </div>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      Id
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="id" size="40" value="cps">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      Title
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="title" size="40" value="CPS Portal">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      Description
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <textarea name="description" cols="60" rows="10"
+     style="width: 100%"></textarea>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator login
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="root_id" size="40" value="root">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator Name
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="root_sn" size="40" value="CPS">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator Given Name
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="root_givenName" size="40" value="Root">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator E-mail
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="root_email" size="40" value="root@cps">
+    </td>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator Password
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="password" name="root_password1" size="40" value="">
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      CPS Administrator Password Confirmation
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="password" name="root_password2" size="40" value="">
+    </td>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      SQL Connection Type
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="sql_connection_type" size="40" value="Z MySQL Database Connection">
+    </td>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      SQL Connection String
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <input type="text" name="sql_connection_string" size="40" value="test test">
+    </td>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+      Languages
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <dtml-in "[('fr', 'French'),('en','English')]">
+        <input type="checkbox" name="langs_list:list"
+               value="<dtml-var sequence-key>"> <dtml-var sequence-item>
+      </dtml-in>
+    </td>
+  </tr>
+
+  <tr>
+    <td align="left" valign="top">
+    </td>
+    <td align="left" valign="top">
+    <div class="form-element">
+    <input class="form-element" type="submit" name="submit"
+     value=" Add " />
+    </div>
+    </td>
+  </tr>
+</table>
+</form>
+
+<dtml-if manage_page_footer>
+  <dtml-var manage_page_footer>
+<dtml-else>
+  </body></html>
+</dtml-if>