diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java
index 84303f0b58d436b0dfa21fc588c9cbf8d82de19a..02aae0b84ecc5799c3e0b6c365bffefd55b03067 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ChannelChooserPanel.java
@@ -109,6 +109,9 @@ public class ChannelChooserPanel extends LayoutContainer
     private List<ChannelSelectionListener> channelSelectionListeners =
             new ArrayList<ChannelSelectionListener>();
 
+    private Map<String, IntensityRange> intensitiesPerChannel =
+            new HashMap<String, IntensityRange>();
+
     private final Listener<BaseEvent> selectionChangeListener = new Listener<BaseEvent>()
         {
             @Override
@@ -123,15 +126,15 @@ public class ChannelChooserPanel extends LayoutContainer
             @Override
             public void handleEvent(BaseEvent be)
             {
+                String channelCode = getSelectedValues().get(0);
                 InternalImageTransformationInfo selectedTransformation =
                         transformationsComboBox.getSimpleValue().getItem();
                 String transformationCode = selectedTransformation.getCode();
-                defaultChannelState.setDefaultTransformation(getSelectedValues().get(0),
-                        transformationCode);
+                defaultChannelState.setDefaultTransformation(channelCode, transformationCode);
                 changeTransformationSettingsButtonVisibility(true, false);
 
                 IntensityRange intensityRange =
-                        defaultChannelState.tryGetIntensityRange(getSelectedValues().get(0));
+                        defaultChannelState.tryGetIntensityRange(channelCode);
                 notifySelectionListeners(getSelectedValues(),
                         tryGetSelectedTransformationCode(false), intensityRange);
 
@@ -145,6 +148,7 @@ public class ChannelChooserPanel extends LayoutContainer
                                             .getBlackPoint()
                                             + " - "
                                             + intensityRange.getWhitePoint()) + "]";
+                    ChannelChooserPanel.this.intensitiesPerChannel.put(channelCode, intensityRange);
                 }
                 transformationsComboBox.setToolTip(updatedTooltip);
             }
@@ -187,8 +191,9 @@ public class ChannelChooserPanel extends LayoutContainer
                         {
                             UserDefinedRescalingSettingsDialog dialog =
                                     new UserDefinedRescalingSettingsDialog(messageProvider,
-                                            defaultChannelState, getSelectedValues().get(0));
-                            dialog.addListener(Events.Hide, transformationSelection);
+                                            intensitiesPerChannel, defaultChannelState,
+                                            getSelectedValues().get(0));
+                            dialog.addListener(Events.OnChange, transformationSelection);
                             dialog.show();
                         }
                     });
@@ -403,7 +408,7 @@ public class ChannelChooserPanel extends LayoutContainer
         updateTransformationComboBox();
 
         notifySelectionListeners(selection, tryGetSelectedTransformationCode(false),
-                defaultChannelState.tryGetIntensityRange(selectedComboValue));
+                tryGetSelectedIntensityRange());
     }
 
     public String tryGetSelectedTransformationCode(boolean force)
@@ -425,7 +430,7 @@ public class ChannelChooserPanel extends LayoutContainer
 
     public IntensityRange tryGetSelectedIntensityRange()
     {
-        return defaultChannelState.tryGetIntensityRange(getSelectedValues().get(0));
+        return intensitiesPerChannel.get(getSelectedValues().get(0));
     }
 
     private static String transformCode(String code)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/UserDefinedRescalingSettingsDialog.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/UserDefinedRescalingSettingsDialog.java
index e05c6767bb5e9ae46087110efeddc9cada740fe6..654640cb3a71b0d0d4208ad4fb62634d8bbd4f3c 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/UserDefinedRescalingSettingsDialog.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/UserDefinedRescalingSettingsDialog.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers;
 
+import java.util.Map;
+
 import com.extjs.gxt.ui.client.event.BaseEvent;
 import com.extjs.gxt.ui.client.event.Events;
 import com.extjs.gxt.ui.client.event.Listener;
@@ -49,6 +51,7 @@ public class UserDefinedRescalingSettingsDialog extends Dialog
     private final String channelCode;
 
     public UserDefinedRescalingSettingsDialog(IMessageProvider messageProvider,
+            Map<String, IntensityRange> intensitiesPerChannel,
             IDefaultChannelState defaultChannelState, String channelCode)
     {
         super();
@@ -66,7 +69,7 @@ public class UserDefinedRescalingSettingsDialog extends Dialog
         maxTextField =
                 new IntegerField(messageProvider.getMessage(Dict.RESCALING_DIALOG_MAX), true);
 
-        setInitialValues();
+        setInitialValues(intensitiesPerChannel);
 
         Grid grid = new Grid(2, 2);
         grid.setWidget(0, 0, labelMin);
@@ -89,12 +92,12 @@ public class UserDefinedRescalingSettingsDialog extends Dialog
             });
     }
 
-    private void setInitialValues()
+    private void setInitialValues(Map<String, IntensityRange> intensitiesPerChannel)
     {
         minTextField.setValue(0);
-        maxTextField.setValue(255);
+        maxTextField.setValue(65535);
 
-        IntensityRange range = defaultChannelState.tryGetIntensityRange(channelCode);
+        IntensityRange range = intensitiesPerChannel.get(channelCode);
         if (range != null)
         {
             minTextField.setValue(range.getBlackPoint());
@@ -112,7 +115,7 @@ public class UserDefinedRescalingSettingsDialog extends Dialog
             {
                 super.onButtonPressed(button);
                 updateIntensityRescaling();
-
+                fireEvent(Events.OnChange);
                 hide();
             } else
             {