diff --git a/product/ERP5/Document/PythonScript.py b/product/ERP5/Document/PythonScript.py
index ca7cd32d09283e8e08250e9b345b436e7f40d509..8a2254069e7475cb7c408bb45e6d1ab19590dd74 100644
--- a/product/ERP5/Document/PythonScript.py
+++ b/product/ERP5/Document/PythonScript.py
@@ -102,6 +102,13 @@ class PythonScript(XMLObject, ZopePythonScript):
       """
       self.write(value)
 
+    def _setProxyRoleList(self, value):
+      """
+      override to call ZopePythonScript methods
+      """
+      self._baseSetProxyRoleList(value)
+      self.manage_proxy(roles=value)
+
     __call__ = ZopePythonScript.__call__
 
     def edit(self, **kw):
diff --git a/product/ERP5/PropertySheet/PythonScript.py b/product/ERP5/PropertySheet/PythonScript.py
index 581ebd2f1b90a83089f99f548762a20a6d99cd5b..e5bec9e7922de6f934eda46a014f25c2dc7cc676 100644
--- a/product/ERP5/PropertySheet/PythonScript.py
+++ b/product/ERP5/PropertySheet/PythonScript.py
@@ -41,6 +41,11 @@ class PythonScript:
           'type'        : 'string',
           'storage_id'  : '_params',
           'mode'        : '' },
+      {   'id'          : 'proxy_role',
+          'description' : 'A local property description',
+          'type'        : 'tokens',
+          'storage_id'  : '_proxy_roles',
+          'mode'        : '' },
   )
 
   _categories = ('callable_type',)