diff --git a/product/ERP5Form/Report.py b/product/ERP5Form/Report.py
index b4ecf76c5bf3ed75f2512c581f706bd785f48dc4..08cb01660834bb55f33f49243625af4bfdc94625 100755
--- a/product/ERP5Form/Report.py
+++ b/product/ERP5Form/Report.py
@@ -279,9 +279,13 @@ class ReportSection:
           selection.edit(report_path=self.selection_report_path)
         if self.listbox_display_mode is not None:
           self.saved_selections[selection_name]['display_mode'] = \
-               portal_selections.getListboxDisplayMode(selection_name, REQUEST=REQUEST)
-          portal_selections.setListboxDisplayMode(REQUEST, self.listbox_display_mode,
-                                                selection_name=selection_name)
+               portal_selections.getListboxDisplayMode(selection_name, 
+                                                       REQUEST=REQUEST)
+          # XXX Dirty fix, to be able to change the display mode in form_view
+          REQUEST.list_selection_name = selection_name
+          portal_selections.setListboxDisplayMode(
+                                           REQUEST, self.listbox_display_mode,
+                                           selection_name=selection_name)
         if self.selection_params is not None:
           self.saved_selections[selection_name]['params'] =  \
                portal_selections.getSelectionParams(selection_name, REQUEST=REQUEST)
@@ -327,13 +331,12 @@ class ReportSection:
           selection = portal_selections.getSelectionFor(selection_name, REQUEST=REQUEST)
           selection.edit(report_path = self.saved_selections[selection_name]['report_path'])
         if self.listbox_display_mode is not None:
-          portal_selections.setListboxDisplayMode(REQUEST,
-                                                self.saved_selections[selection_name]['display_mode'],
-                                                selection_name=selection_name)
-        if self.listbox_display_mode is not None:
-          portal_selections.setListboxDisplayMode(REQUEST,
-                                                self.saved_selections[selection_name]['display_mode'],
-                                                selection_name=selection_name)
+          # XXX Dirty fix, to be able to change the display mode in form_view
+          REQUEST.list_selection_name = selection_name
+          portal_selections.setListboxDisplayMode(
+                       REQUEST,
+                       self.saved_selections[selection_name]['display_mode'],
+                       selection_name=selection_name)
         if self.selection_params is not None:
           # first make sure no parameters that have been pushed are erased 
           portal_selections.setSelectionParamsFor(selection_name, {}, REQUEST=REQUEST)
diff --git a/product/ERP5Form/SelectionTool.py b/product/ERP5Form/SelectionTool.py
index a51ce4f1d84ab266ddb5ae2c6bda0d386e4e39c8..ca5c121aec2a8e4d29f448fc8142fe88cf80aecc 100755
--- a/product/ERP5Form/SelectionTool.py
+++ b/product/ERP5Form/SelectionTool.py
@@ -678,17 +678,34 @@ class SelectionTool( UniqueObject, SimpleItem ):
       return 'FlatListMode'
           
     security.declareProtected(ERP5Permissions.View, 'setListboxDisplayMode')
-    def setListboxDisplayMode(self, REQUEST,listbox_display_mode, selection_name=None,redirect=0):
+    def setListboxDisplayMode(self, REQUEST, listbox_display_mode, 
+                              selection_name=None, redirect=0):
       """
         Toogle display of the listbox
       """
-
       request = REQUEST
-      if selection_name is None: selection_name = request.list_selection_name
+      # XXX FIXME
+      # Dirty fix: we must be able to change the display mode of a listbox
+      # in form_view
+      # But, form can have multiple listbox...
+      # This need to be cleaned
+      # Beware, this fix may break the report system...
+      # and we don't have test for this
+      # Possible fix: currently, display mode icon are implemented as 
+      # method. It could be easier to generate them as link (where we 
+      # can define explicitely parameters through the url).
+      try:
+        list_selection_name = request.list_selection_name
+      except AttributeError:
+        pass
+      else:
+        if list_selection_name is not None:
+          selection_name = request.list_selection_name
+      # Get the selection
       selection = self.getSelectionFor(selection_name, REQUEST)
       if selection is None:
         selection = Selection()
-        self.setSelectionFor(selection_name,selection,REQUEST=REQUEST)
+        self.setSelectionFor(selection_name,selection, REQUEST=REQUEST)
 
       if listbox_display_mode == 'FlatListMode':
         flat_list_mode = 1
@@ -707,9 +724,9 @@ class SelectionTool( UniqueObject, SimpleItem ):
         domain_tree_mode = 0
         report_tree_mode = 0      
         
-      selection.edit(flat_list_mode=flat_list_mode,domain_tree_mode=domain_tree_mode,
-                                                report_tree_mode=report_tree_mode)
-
+      selection.edit(flat_list_mode=flat_list_mode,
+                     domain_tree_mode=domain_tree_mode,
+                     report_tree_mode=report_tree_mode)
       # It is better to reset the query when changing the display mode.
       params = selection.getParams()
       if 'where_expression' in params: del params['where_expression']
@@ -723,32 +740,32 @@ class SelectionTool( UniqueObject, SimpleItem ):
         referer = referer.replace('reset:int=', 'noreset:int=')
         return request.RESPONSE.redirect(referer)
 
-
     security.declareProtected(ERP5Permissions.View, 'setFlatListMode')
     def setFlatListMode(self, REQUEST, selection_name=None):
       """
         Set display of the listbox to FlatList mode
       """
-
-      return self.setListboxDisplayMode(REQUEST=REQUEST, listbox_display_mode='FlatListMode', selection_name=selection_name,redirect=1)
-
+      return self.setListboxDisplayMode(
+                       REQUEST=REQUEST, listbox_display_mode='FlatListMode', 
+                       selection_name=selection_name, redirect=1)
 
     security.declareProtected(ERP5Permissions.View, 'setDomainTreeMode')
     def setDomainTreeMode(self, REQUEST, selection_name=None):
       """
          Set display of the listbox to DomainTree mode
       """
-
-      return self.setListboxDisplayMode(REQUEST=REQUEST,listbox_display_mode='DomainTreeMode', selection_name=selection_name,redirect=1)
-
+      return self.setListboxDisplayMode(
+                       REQUEST=REQUEST, listbox_display_mode='DomainTreeMode', 
+                       selection_name=selection_name, redirect=1)
 
     security.declareProtected(ERP5Permissions.View, 'setReportTreeMode')
     def setReportTreeMode(self, REQUEST, selection_name=None):
       """
         Set display of the listbox to ReportTree mode
       """
-
-      return self.setListboxDisplayMode(REQUEST=REQUEST,listbox_display_mode='ReportTreeMode',selection_name=selection_name,redirect=1)
+      return self.setListboxDisplayMode(
+                       REQUEST=REQUEST, listbox_display_mode='ReportTreeMode',
+                       selection_name=selection_name, redirect=1)
 
     security.declareProtected(ERP5Permissions.View, 'getSelectionSelectedValueList')
     def getSelectionSelectedValueList(self, selection_name, REQUEST=None, selection_method=None, context=None):