diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py
index 293bfadd4483befb751e4d7934a3b3629438092c..b9312965dff88f11f0178ce5fd304b39a5039bb9 100644
--- a/product/ERP5Type/Base.py
+++ b/product/ERP5Type/Base.py
@@ -1862,7 +1862,7 @@ class Base(
   def _setValue(self, id, target, spec=(), filter=None, portal_type=(), keep_default=1,
                                   checked_permission=None):
     getRelativeUrl = self.getPortalObject().portal_url.getRelativeUrl
-        
+    
     def cleanupCategory(path):
       # prevent duplicating base categories and storing "portal_categories/"
       for start_string in ("portal_categories/", "%s/" % id):
@@ -3249,13 +3249,14 @@ class Base(
       pass
     else:
       max_date = None
-      for history in history_list.itervalues():
-        try:
-          date = history[-1]['time']
-        except (IndexError, KeyError, TypeError):
-          continue
-        if date > max_date:
-          max_date = date
+      portal_workflow = getToolByName(self.getPortalObject(), 'portal_workflow')
+      getStatusOf = portal_workflow.getStatusOf
+      for key, _ in history_list.iteritems():
+        status = getStatusOf(key, self)
+        if status is not None and status.has_key('time'):
+          date = status['time']
+          if date > max_date:
+            max_date = date
       if max_date:
         # Return a copy of history time, to prevent modification
         return DateTime(max_date)