diff --git a/gen/__init__.py b/gen/__init__.py
index 02b954c..00a5eaa 100644
--- a/gen/__init__.py
+++ b/gen/__init__.py
@@ -2278,10 +2278,13 @@ class List(Type):
def getStorableValue(self, value):
'''Gets p_value in a form that can be stored in the database.'''
+ res = []
for v in value:
+ sv = Object()
for name, field in self.fields:
- setattr(v, name, field.getStorableValue(getattr(v, name)))
- return value
+ setattr(sv, name, field.getStorableValue(getattr(v, name)))
+ res.append(sv)
+ return res
def getInnerValue(self, outerValue, name, i):
'''Returns the value of inner field named p_name in row number p_i
diff --git a/gen/plone25/skin/widgets/list.pt b/gen/plone25/skin/widgets/list.pt
index 3b167ba..c8a7b94 100644
--- a/gen/plone25/skin/widgets/list.pt
+++ b/gen/plone25/skin/widgets/list.pt
@@ -23,9 +23,9 @@
tal:condition="python: isEdit or value"
tal:attributes="id python: 'list_%s' % name">