diff --git a/product/ERP5Form/PlanningBox.py b/product/ERP5Form/PlanningBox.py
index c5d2743bdef437ef5bdc222daff2743e4ef3456d..58324cf29008ae316a67dfdc88fcf0128885e014 100644
--- a/product/ERP5Form/PlanningBox.py
+++ b/product/ERP5Form/PlanningBox.py
@@ -671,7 +671,8 @@ class PlanningBoxWidget(Widget.Widget):
      'delimiter',
      # specific methods for inserting info block
      'info_center', 'info_topleft', 'info_topright',
-     'info_backleft', 'info_backright'
+     'info_backleft', 'info_backright',
+     'info_tooltip'
      ]
 
   # Planning properties (accessed through Zope Management Interface)
@@ -931,6 +932,14 @@ class PlanningBoxWidget(Widget.Widget):
       default='',
       required=0)
 
+  info_tooltip = fields.StringField('info_tooltip',
+      title='Specific method of data called for inserting info in '
+            'block tooltip',
+      description='Method for displaying info as tootip of a ' \
+                  'block object',
+      default='',
+      required=0)
+
   security_index = fields.IntegerField('security_index',
       title='Variable depending on the type of web browser :',
       description='This variable is used because the rounds of each ' \
@@ -1847,6 +1856,7 @@ class BasicGroup:
     info_topright = self.field.get_value('info_topright')
     info_botleft = self.field.get_value('info_backleft')
     info_botright = self.field.get_value('info_backright')
+    info_tooltip = self.field.get_value('info_tooltip')
     # getting info method from activity itself if exists
     info_center_method = getattr(self.object.getObject(),info_center,None)
     info_topright_method = getattr(self.object.getObject(),info_topright,None)
@@ -1854,6 +1864,8 @@ class BasicGroup:
     info_botleft_method = getattr(self.object.getObject(),info_botleft,None)
     info_botright_method = \
                   getattr(self.object.getObject(),info_botright,None)
+    info_tooltip_method = \
+                  getattr(self.object.getObject(), info_tooltip, None)
     # if method recovered is not null, then updating
     # XXX Does script have to manage multiple context object ?
     if info_center_method is not None:
@@ -1866,6 +1878,8 @@ class BasicGroup:
       info['info_botleft'] = str(info_botleft_method())
     if info_botright_method is not None:
       info['info_botright'] = str(info_botright_method())
+    if info_tooltip_method is not None:
+      info['info_tooltip'] = str(info_tooltip_method())
 
     if activity_list not in ([],None):
       indic=0
@@ -1948,6 +1962,8 @@ class BasicGroup:
             info_botleft_method = getattr(activity_content,info_botleft,None)
             info_botright_method = \
                  getattr(activity_content,info_botright,None)
+            info_tooltip_method = \
+                 getattr(activity_content,info_tooltip,None)
             if obj.getUid() not in self.sec_layer_uid_list:
               # if value recovered is not null, then updating
               if info_center_method is not None:
@@ -1966,6 +1982,8 @@ class BasicGroup:
               info['info_topleft'] = ''
               info['info_botleft'] = ''
               info['info_botright'] = ''
+            if info_tooltip_method is not None:
+               info['info_tooltip']=str(info_tooltip_method())
 
             title = info['info_center']
             color_script = getattr(activity_content.getObject(),
@@ -2809,7 +2827,10 @@ class Bloc:
         self.buildInfo(info_dict=info_dict, area='info_botleft'),
         self.buildInfo(info_dict=info_dict, area='info_botright'),
       ]
-      self.title = " | ".join(title_list)
+      if info_dict.has_key('info_tooltip'):
+        self.title = info_dict['info_tooltip']
+      else:
+        self.title = " | ".join(title_list)
 
     if self.error != 0:
       # field has error