diff --git a/product/ERP5Form/Selection.py b/product/ERP5Form/Selection.py
index 2b136687602e93219ba16ad0096cd883e545cbd8..029edaf1db34dfba568f2aba138115b491471191 100644
--- a/product/ERP5Form/Selection.py
+++ b/product/ERP5Form/Selection.py
@@ -257,12 +257,9 @@ class Selection(Acquisition.Implicit, Traversable, Persistent):
         """
           Get a dictionary of parameters in this selection.
         """
-        #LOG('getParams',0,'params: %s' % str(self.params))
-        if self.params is None:
+        if not isinstance(self.params, dict):
           self.params = {}
-        if type(self.params) != type({}):
-          self.params = {}
-        return self.params
+        return self.params.copy()
 
     security.declarePublic('getSortOrder')
     def getSortOrder(self):
diff --git a/product/ERP5Form/Tool/SelectionTool.py b/product/ERP5Form/Tool/SelectionTool.py
index c10253389e82a512e49e358abc2867fd01f18cf0..ecffd7fcdc6b69d1d24bc7138f2ad99b1c3151f4 100644
--- a/product/ERP5Form/Tool/SelectionTool.py
+++ b/product/ERP5Form/Tool/SelectionTool.py
@@ -258,15 +258,13 @@ class SelectionTool( BaseTool, UniqueObject, SimpleItem ):
       """
         Returns the params in the selection
       """
-      if params is None: params = {}
+      if params is None:
+        params = {}
       selection = self.getSelectionFor(selection_name, REQUEST=REQUEST)
       if selection is not None:
-        if len(selection.params) > 0:
+        if selection.params:
           return selection.getParams()
-        else:
-          return params
-      else:
-        return params
+      return params
 
     # backward compatibility
     security.declareProtected(ERP5Permissions.View, 'getSelectionParams')