diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ChannelStackMatrixChooserWidget.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ChannelStackMatrixChooserWidget.js
index e68bf5e00571258a8e29b14cc0610edef6811e98..9407fd42b80d1238ccda47f29b084cd8ff0396cc 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ChannelStackMatrixChooserWidget.js
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ChannelStackMatrixChooserWidget.js
@@ -1,7 +1,5 @@
-define([ "jquery", "components/common/DelayedExecutor", "components/imageviewer/AbstractWidget",
-		"components/imageviewer/ChannelStackMatrixChooserView", "components/imageviewer/MovieButtonsWidget",
-		"components/imageviewer/ChannelStackManager" ], function($, DelayedExecutor, AbstractWidget, ChannelStackMatrixChooserView,
-		MovieButtonsWidget, ChannelStackManager) {
+define([ "jquery", "components/common/DelayedExecutor", "components/imageviewer/AbstractWidget", "components/imageviewer/ChannelStackMatrixChooserView", "components/imageviewer/MovieButtonsWidget",
+		"components/imageviewer/ChannelStackManager" ], function($, DelayedExecutor, AbstractWidget, ChannelStackMatrixChooserView, MovieButtonsWidget, ChannelStackManager) {
 
 	//
 	// CHANNEL STACK MATRIX CHOOSER WIDGET
@@ -127,6 +125,7 @@ define([ "jquery", "components/common/DelayedExecutor", "components/imageviewer/
 
 			if (this.getSelectedDepth() != depth) {
 				this.selectedDepth = depth;
+				this.getDepthButtonsWidget().setSelectedFrame(this.getDepths().indexOf(depth));
 				this.refresh();
 
 				if (delayed) {
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/OpenbisFacade.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/OpenbisFacade.js
index a226f5e679050885b92ed3f851425e7649cf8886..4d7a0b5b86f59acabbeec10628e5279902c53c5a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/OpenbisFacade.js
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/OpenbisFacade.js
@@ -39,8 +39,94 @@ define([ "jquery" ], function($) {
 		},
 
 		getImageResolutions : function(dataSetCodes, callback) {
-			this.openbis.getImageResolutions(dataSetCodes, callback);
+			var thisFacade = this;
+
+			this.openbis.getDatasetIdentifiers(dataSetCodes, function(response) {
+				if (response.error) {
+					callback(response);
+				} else {
+					thisFacade.openbis.listAvailableImageRepresentationFormats(response.result, function(response) {
+						if (response.error) {
+							callback(response);
+						} else {
+							var map = {};
+
+							response.result.forEach(function(result) {
+								var formats = result.imageRepresentationFormats;
+
+								thisFacade._maybeAddThumbnailRepresentationFormat(formats);
+								thisFacade._removeDuplicatedRepresentationFormats(formats);
+								thisFacade._sortRepresentationFormats(formats);
+
+								map[result.dataset.datasetCode] = formats;
+							});
+
+							callback({
+								"error" : null,
+								"result" : map
+							});
+						}
+					});
+				}
+			});
+		},
+
+		_maybeAddThumbnailRepresentationFormat : function(formats) {
+			var hasThumbnails = formats.some(function(format) {
+				return false == format.original;
+			});
+
+			if (false == hasThumbnails) {
+				var originals = formats.filter(function(format) {
+					return format.original;
+				});
+
+				if (originals && originals.length > 0) {
+					var original = originals[0];
+
+					if (original.width && original.height) {
+						formats.push({
+							"original" : false,
+							"width" : Math.round(original.width / 4),
+							"height" : Math.round(original.height / 4)
+						});
+					}
+				}
+			}
+		},
+
+		_removeDuplicatedRepresentationFormats : function(formats) {
+			var resolutions = {};
+			var newFormats = [];
+
+			formats.forEach(function(format, index) {
+				var resolution = format.width + "x" + format.height;
+				if (!resolutions[resolution]) {
+					resolutions[resolution] = format;
+					newFormats.push(format);
+				}
+			});
+
+			formats.splice(0, formats.length);
+			Array.prototype.push.apply(formats, newFormats);
+		},
+
+		_sortRepresentationFormats : function(formats) {
+			formats.sort(function(o1, o2) {
+				var compare = function(v1, v2) {
+					if (v1 > v2) {
+						return 1;
+					} else if (v1 < v2) {
+						return -1;
+					} else {
+						return 0;
+					}
+				}
+
+				return compare(o1.width, o2.width) * 10 + compare(o1.height, o2.height);
+			});
 		}
+
 	});
 
 	return OpenbisFacade;
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserView.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserView.js
index bbd68f3ed0f6e1cf84af2c1a6bb301c21cb249fb..5bc9477e6e6ed2ddce577048b8ee47d3f84cf2ee 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserView.js
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserView.js
@@ -21,7 +21,6 @@ define([ "jquery", "components/imageviewer/AbstractView" ], function($, Abstract
 			$("<label>").text("Resolution").attr("for", "resolutionChooserSelect").appendTo(this.panel);
 
 			var select = $("<select>").attr("id", "resolutionChooserSelect").addClass("form-control").appendTo(this.panel);
-			$("<option>").attr("value", "").text("Default").appendTo(select);
 
 			this.controller.getResolutionsCodes().forEach(function(resolution) {
 				$("<option>").attr("value", resolution).text(resolution).appendTo(select);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserWidget.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserWidget.js
index 0b5e5afd492c9e4cdc5f77078c0d55ae72829a36..c822ed057f8fb09691c8604b351803830dc54961 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserWidget.js
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/components/imageviewer/ResolutionChooserWidget.js
@@ -1,5 +1,4 @@
-define([ "jquery", "components/imageviewer/AbstractWidget", "components/imageviewer/ResolutionChooserView" ], function($, AbstractWidget,
-		ResolutionChooserView) {
+define([ "jquery", "components/imageviewer/AbstractWidget", "components/imageviewer/ResolutionChooserView" ], function($, AbstractWidget, ResolutionChooserView) {
 
 	//
 	// RESOLUTION CHOOSER WIDGET
@@ -79,6 +78,11 @@ define([ "jquery", "components/imageviewer/AbstractWidget", "components/imagevie
 
 			if (this.getResolutions().toString() != resolutions.toString()) {
 				this.resolutions = resolutions;
+
+				if (this.getResolutionsCodes().length > 0) {
+					this.setSelectedResolution(this.getResolutionsCodes()[0]);
+				}
+
 				this.refresh();
 				this.notifyChangeListeners();
 			}