diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml
index c317a232e4ad8d33b066f15d62a97b1306e82fc3..c878af71270a452156c4363fea02d6e62daa030c 100644
--- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml
+++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml
@@ -148,7 +148,8 @@ def editMatrixBox(matrixbox_field, matrixbox):\n
         columns = []\n
         tabs = []\n
         if as_cell_range_script_id:\n
-          cell_range = getattr(context, as_cell_range_script_id)(matrixbox=True)\n
+          cell_range = getattr(matrix_context,\n
+              as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id)\n
           if len(cell_range) == 1:\n
             lines, = cell_range\n
           elif len(cell_range) == 2:\n
diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision
index 99b41733b913afdd50105a4b00a8c790290c2ce7..891f73536c04b701ac623c4fe9cce4008c51dc2a 100644
--- a/product/ERP5/bootstrap/erp5_core/bt/revision
+++ b/product/ERP5/bootstrap/erp5_core/bt/revision
@@ -1 +1 @@
-1433
\ No newline at end of file
+1434
\ No newline at end of file
diff --git a/product/ERP5Form/MatrixBox.py b/product/ERP5Form/MatrixBox.py
index 68fd67fdf4d9f3c02f36db46dc15833210663826..875ca7e110c06c9845e5a904fd651081e24d6822 100644
--- a/product/ERP5Form/MatrixBox.py
+++ b/product/ERP5Form/MatrixBox.py
@@ -201,13 +201,19 @@ class MatrixBoxWidget(Widget.Widget):
         form = field.aq_parent
         field_title = field.get_value('title')
         cell_base_id = field.get_value('cell_base_id')
+        context = here
+        getter_method_id = field.get_value('getter_method')
+        if getter_method_id not in (None,''):
+          context = getattr(here,getter_method_id)()
+        if context is None:
+          return ''
         as_cell_range_script_id = field.get_value('as_cell_range_script_id')
         if as_cell_range_script_id:
           lines = []
           columns = []
           tabs = []
-          dimension_list = guarded_getattr(here,
-              as_cell_range_script_id)(matrixbox=True)
+          dimension_list = guarded_getattr(context,
+              as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id)
           len_dimension_list = len(dimension_list)
           if len_dimension_list:
             if len_dimension_list == 1:
@@ -225,12 +231,6 @@ class MatrixBoxWidget(Widget.Widget):
           columns = field.get_value('columns')
           tabs = field.get_value('tabs')
         field_errors = REQUEST.get('field_errors', {})
-        context = here
-        getter_method_id = field.get_value('getter_method')
-        if getter_method_id not in (None,''):
-          context = getattr(here,getter_method_id)()
-        if context is None:
-          return ''
         cell_getter_method_id = field.get_value('cell_getter_method')
         if cell_getter_method_id not in (None, ''):
           cell_getter_method = getattr(here, cell_getter_method_id)
@@ -445,12 +445,18 @@ class MatrixBoxValidator(Validator.Validator):
         here = getattr(form, 'aq_parent', REQUEST)
         cell_base_id = field.get_value('cell_base_id')
         as_cell_range_script_id = field.get_value('as_cell_range_script_id')
+        context = here
+        getter_method_id = field.get_value('getter_method')
+        if getter_method_id not in (None,''):
+          context = getattr(here,getter_method_id)()
+          if context is None:
+            return {}
         if as_cell_range_script_id:
           lines = []
           columns = []
           tabs = []
-          dimension_list = guarded_getattr(here,
-              as_cell_range_script_id)(matrixbox=True)
+          dimension_list = guarded_getattr(context,
+              as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id)
           len_dimension_list = len(dimension_list)
           if len_dimension_list:
             if len_dimension_list == 1:
@@ -469,12 +475,7 @@ class MatrixBoxValidator(Validator.Validator):
           tabs = field.get_value('tabs')
 
         editable_attributes = field.get_value('editable_attributes')
-        getter_method_id = field.get_value('getter_method')
         error_list = []
-        context = here
-        if getter_method_id not in (None,''):
-          context = getattr(here,getter_method_id)()
-          if context is None: return {}
         cell_getter_method_id = field.get_value('cell_getter_method')
         if cell_getter_method_id not in (None, ''):
           cell_getter_method = getattr(here, cell_getter_method_id)