diff --git a/openerp/fields.py b/openerp/fields.py
index 1cb82c47956398442c762aaa9039b0dc6a1e5c1c..66cc64f7349f311a6317f2b14b39bf67d82ade9f 100644
--- a/openerp/fields.py
+++ b/openerp/fields.py
@@ -1098,15 +1098,20 @@ class Monetary(Field):
     type = 'monetary'
     _slots = {
         'currency_field': None,
+        'group_operator': None,         # operator for aggregating values
     }
 
     def __init__(self, string=None, currency_field=None, **kwargs):
         super(Monetary, self).__init__(string=string, currency_field=currency_field, **kwargs)
 
-    _column_currency_field = property(attrgetter('currency_field'))
     _related_currency_field = property(attrgetter('currency_field'))
+    _related_group_operator = property(attrgetter('group_operator'))
+
     _description_currency_field = property(attrgetter('currency_field'))
 
+    _column_currency_field = property(attrgetter('currency_field'))
+    _column_group_operator = property(attrgetter('group_operator'))
+
     def _setup_regular_base(self, model):
         super(Monetary, self)._setup_regular_base(model)
         if not self.currency_field:
diff --git a/openerp/models.py b/openerp/models.py
index a1a50e55460c673ed2fbe70d1450ad411fbebdbf..0d04c0fd52de29f5506937ca5afe9633f59e7f5e 100644
--- a/openerp/models.py
+++ b/openerp/models.py
@@ -2069,7 +2069,7 @@ class BaseModel(object):
             if f not in ('id', 'sequence')
             if f not in groupby_fields
             if f in self._fields
-            if self._fields[f].type in ('integer', 'float')
+            if self._fields[f].type in ('integer', 'float', 'monetary')
             if getattr(self._fields[f].base_field.column, '_classic_write', False)
         ]