diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
index 03d062a1c1b7d64789ee1b7a82cac904c71d4339..6cbc5accad96abc4405635ec3daedda1e69816aa 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js
@@ -2116,6 +2116,20 @@ function ServerFacade(openbisServer) {
 		});
 	}
 
+	this.unarchiveDataSet = function(dataSetPermId, callbackFunction) {
+		require(["as/dto/dataset/id/DataSetPermId", "as/dto/dataset/unarchive/DataSetUnarchiveOptions"], 
+			function(DataSetPermId, DataSetUnarchiveOptions) {
+				var ids = [new DataSetPermId(dataSetPermId)];
+				var options = new DataSetUnarchiveOptions();
+				mainController.openbisV3.unarchiveDataSets(ids, options).done(function(result) {
+					callbackFunction(true);
+				}).fail(function(result) {
+					Util.showError("Call failed to server: " + JSON.stringify(result));
+					callbackFunction(false);
+				});
+			});
+	}
+
 	this.getSessionInformation = function(callbackFunction) {
 		mainController.openbisV3.getSessionInformation().done(function(sessionInfo) {
                 callbackFunction(sessionInfo);
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
index e9318276b6c21f6121e490e421a8de0be341bd45..202e56c3b17eb4ede162f37ba6ae59ed936c7bbf 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/util/FormUtil.js
@@ -856,9 +856,14 @@ var FormUtil = new function() {
 		for(var tbIdx = 0; tbIdx < toolbarModel.length; tbIdx++) {
 			var $toolbarComponent = toolbarModel[tbIdx].component;
 			var toolbarComponentTooltip = toolbarModel[tbIdx].tooltip;
+			var $toolbarComponentTooltip = toolbarModel[tbIdx].$tooltip;
 			if(toolbarComponentTooltip) {
 				$toolbarComponent.attr("title", toolbarComponentTooltip);
 				$toolbarComponent.tooltipster();
+			} else if ($toolbarComponentTooltip) {
+				$toolbarComponent.tooltipster({
+					content: $toolbarComponentTooltip
+				});
 			}
 			$toolbarContainer.append($toolbarComponent);
 			$toolbarContainer.append("&nbsp;");
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
index a05dc6db71a4f5f5969998feb6174f5f3c5dee48..6ed9dfed48a78885d902206c45f43fb48e0209aa 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
@@ -232,13 +232,27 @@ function DataSetFormController(parentController, mode, entity, dataSet, isMini,
 		var physicalDataUpdate = { archivingRequested : archivingRequested }
 		Util.blockUI();
 		mainController.serverFacade.updateDataSet(dataSetPermId, physicalDataUpdate, function() {
-			if(_this._dataSetFormModel.mode === FormMode.VIEW) {
-				mainController.changeView('showViewDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code);
-			} else {
-				mainController.changeView('showEditDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code);
-			}
+			_this._reloadView();
 			Util.unblockUI();
 		});
 	}
 
+	this.unarchive = function() {
+		var _this = this;
+		var dataSetPermId = this._dataSetFormModel.dataSetV3.permId.permId;
+		Util.blockUI();
+		mainController.serverFacade.unarchiveDataSet(dataSetPermId, function() {
+			_this._reloadView();
+			Util.unblockUI();
+		});
+	}
+
+	this._reloadView = function() {
+		if(this._dataSetFormModel.mode === FormMode.VIEW) {
+			mainController.changeView('showViewDataSetPageFromPermId', this._dataSetFormModel.dataSet.code);
+		} else {
+			mainController.changeView('showEditDataSetPageFromPermId', this._dataSetFormModel.dataSet.code);
+		}
+	}
+
 }
\ No newline at end of file
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
index 145480947f6e6288a2c8382014ec85a400cdb324..4c4dd312848aee59742f3002443ca811f555ca51 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
@@ -94,25 +94,55 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 
 			//Archiving Requested Button
 			var physicalData = this._dataSetFormModel.dataSetV3.physicalData;
+
 			if (profile.showDatasetArchivingButton && physicalData) {
+
+				var archiveImage = "./img/archive-not-requested-icon.png";
 				if (physicalData.presentInArchive) {
-					var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-archived-icon.png");
-					var tooltip = "Archived";
-					$archivingRequestedBtn.attr("disabled", true);
-				} else {
+					archiveImage = "./img/archive-archived-icon.png";
+				} else if (physicalData.archivingRequested || physicalData.status == "ARCHIVE_PENDING") {
+					archiveImage = "./img/archive-requested-icon.png";
+				}
+
+				var archiveAction = null;
+				var archiveTooltip = null;
+				var $archiveTooltip = null;
+				if (physicalData.status == "AVAILABLE" && !physicalData.presentInArchive) {
 					if (physicalData.archivingRequested) {
-						var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-requested-icon.png", function () {
-							_this._dataSetFormController.setArchivingRequested(false);
-						});
-						var tooltip = "Revoke archiving request";	
+						archiveAction = function() {
+							_this.revokeArchivingRequest();
+						}
+						archiveTooltip = "Revoke archiving request";
 					} else {
-						var $archivingRequestedBtn = FormUtil.getButtonWithImage("./img/archive-not-requested-icon.png", function () {
+						archiveAction = function() {
 							_this.requestArchiving();
-						});
-						var tooltip = "Request archiving";	
+						}
+						archiveTooltip = "Request archiving";
 					}
+				} else if (physicalData.status == "ARCHIVED") {
+					archiveAction = function() {
+						_this._dataSetFormController.unarchive();
+					}
+					archiveTooltip = "Unarchive";
+				}
+
+				if (archiveTooltip == null) {
+					$archiveTooltip = $("<div>")
+						.append($("<p>").text("Status: " + physicalData.status))
+						.append($("<p>").text("Present in archive: " + physicalData.presentInArchive))
+						.append($("<p>").text("Archiving requested: " + physicalData.archivingRequested));
+				}
+
+				var $archivingRequestedBtn = FormUtil.getButtonWithImage(archiveImage, archiveAction);
+				if (archiveAction == null) {
+					$archivingRequestedBtn.attr("disabled", true);
 				}
-				toolbarModel.push({ component : $archivingRequestedBtn, tooltip: tooltip });
+
+				toolbarModel.push({
+					component : $archivingRequestedBtn,
+					tooltip : archiveTooltip,
+					$tooltip : $archiveTooltip
+				});
 			}
 			
 			//Delete Button
@@ -675,4 +705,8 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 		Util.blockUI($window, css);
 	}
 
+	this.revokeArchivingRequest = function() {
+		this._dataSetFormController.setArchivingRequested(false);
+	}
+
 }
\ No newline at end of file