diff --git a/addons/project/project.py b/addons/project/project.py
index 2a56f437c6b3ca103fd8240e3d8764df4c848cc7..f3b4c4c7f285c58baa006c3614012ef402de2318 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -255,8 +255,9 @@ class project(osv.osv):
         proj = self.browse(cr, uid, id, context=context)
         if not default.get('name'):
             default.update(name=_("%s (copy)") % (proj.name))
-        default['message_follower_ids'] = [(6, 0, proj.message_follower_ids.ids)]
         res = super(project, self).copy(cr, uid, id, default, context)
+        for follower in proj.message_follower_ids:
+            self.message_subscribe(cr, uid, res, partner_ids=[follower.partner_id.id], subtype_ids=[subtype.id for subtype in follower.subtype_ids])
         self.map_tasks(cr, uid, id, res, context=context)
         return res