diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
index dc3e4c6681148590e707f5f9075ed2aab1ce43b1..44098fc4d2a165d368c052564a1bfa52738223bc 100644
--- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
+++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
@@ -114,7 +114,7 @@ EditProjectDialog.prototype.addTab = function (params) {
     navigationObject: navLi,
     navigationBar: params.tabMenuDiv
   });
-  $(contentDiv).css("overflow","auto");
+  $(contentDiv).css("overflow", "auto");
 
   if (params.content !== undefined) {
     contentDiv.appendChild(params.content);
@@ -821,7 +821,12 @@ function getValueOrEmpty(value) {
   }
 }
 
-EditProjectDialog.prototype.mapToTableRow = function (map, users) {
+/**
+ *
+ * @param {MapModel} map
+ * @returns {Array}
+ */
+EditProjectDialog.prototype.mapToTableRow = function (map) {
   var row = [];
   var id = map.getId();
   var centerX = getValueOrEmpty(map.getDefaultCenterX());
@@ -831,7 +836,17 @@ EditProjectDialog.prototype.mapToTableRow = function (map, users) {
   row[1] = map.getName();
   row[2] = "<input name='defaultCenterX-" + id + "' value='" + centerX + "'/>";
   row[3] = "<input name='defaultCenterY-" + id + "' value='" + centerY + "'/>";
-  row[4] = "<input name='defaultZoomLevel-" + id + "' value='" + zoomLevel + "'/>";
+  var zoomLevelSelect = "<select name='defaultZoomLevel-" + id + "' value='" + zoomLevel + "'>" +
+    "<option value=''>---</option>";
+  for (var i = map.getMinZoom(); i <= map.getMaxZoom(); i++) {
+    var selected = "";
+    if (i === zoomLevel) {
+      selected = " selected ";
+    }
+    zoomLevelSelect += "<option value='" + i + "' " + selected + ">" + (i - map.getMinZoom()) + "</option>";
+  }
+  zoomLevelSelect += "</select>";
+  row[4] = zoomLevelSelect;
   row[5] = "<button name='saveMap' data='" + id + "'><i class=\"fa fa-save\" style=\"font-size:17px\"></i></button>";
 
   return row;
@@ -921,8 +936,10 @@ EditProjectDialog.prototype.saveOverlay = function (overlayId) {
 EditProjectDialog.prototype.saveMap = function (mapId) {
   var self = this;
   var map = self._mapsById[mapId];
-  map.setDefaultCenterX($("[name='defaultCenterX-" + mapId + "']", self.getElement())[0].value);
-  map.setDefaultCenterY($("[name='defaultCenterY-" + mapId + "']", self.getElement())[0].value);
+  var centerX = parseInt($("[name='defaultCenterX-" + mapId + "']", self.getElement())[0].value);
+  var centerY = parseInt($("[name='defaultCenterY-" + mapId + "']", self.getElement())[0].value);
+  map.setDefaultCenterX(centerX);
+  map.setDefaultCenterY(centerY);
   map.setDefaultZoomLevel($("[name='defaultZoomLevel-" + mapId + "']", self.getElement())[0].value);
 
   return ServerConnector.updateModel({projectId: self.getProject().getProjectId(), model: map});
diff --git a/frontend-js/src/main/js/map/data/MapModel.js b/frontend-js/src/main/js/map/data/MapModel.js
index 81a5dae53e5580ab0fa912bd3b7df2be7257ad81..a81d39314c136949eed0e68fe13fe4c0b206def7 100644
--- a/frontend-js/src/main/js/map/data/MapModel.js
+++ b/frontend-js/src/main/js/map/data/MapModel.js
@@ -455,8 +455,16 @@ MapModel.prototype.getDefaultZoomLevel = function () {
   return this._defaultZoomLevel;
 };
 
+/**
+ *
+ * @param {number} defaultZoomLevel
+ */
 MapModel.prototype.setDefaultZoomLevel = function (defaultZoomLevel) {
-  this._defaultZoomLevel = defaultZoomLevel;
+  if (!isNaN(defaultZoomLevel)) {
+    this._defaultZoomLevel = defaultZoomLevel;
+  } else {
+    this._defaultZoomLevel = null;
+  }
 };
 
 /**
@@ -467,8 +475,16 @@ MapModel.prototype.getDefaultCenterX = function () {
   return this._defaultCenterX;
 };
 
+/**
+ *
+ * @param {number} defaultCenterX
+ */
 MapModel.prototype.setDefaultCenterX = function (defaultCenterX) {
-  this._defaultCenterX = defaultCenterX;
+  if (!isNaN(defaultCenterX)) {
+    this._defaultCenterX = defaultCenterX;
+  } else {
+    this._defaultCenterX = null;
+  }
 };
 
 /**
@@ -480,7 +496,11 @@ MapModel.prototype.getDefaultCenterY = function () {
 };
 
 MapModel.prototype.setDefaultCenterY = function (defaultCenterY) {
-  this._defaultCenterY = defaultCenterY;
+  if (!isNaN(defaultCenterY)) {
+    this._defaultCenterY = defaultCenterY;
+  } else {
+    this._defaultCenterY = null;
+  }
 };
 
 MapModel.prototype.getSubmodelType = function () {
diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
index 78c6e8a518283853d4616af260f59264de0ff694..5e3659dbc1a4d3ece5da1918825bc07267448108 100644
--- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
+++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/ModelRestImpl.java
@@ -138,6 +138,8 @@ public class ModelRestImpl extends BaseRestImpl {
   private Double parseDouble(Object value) throws QueryException {
     if (value instanceof Double) {
       return (Double) value;
+    } else if (value instanceof Integer) {
+      return ((Integer) value).doubleValue();
     } else if (value instanceof String) {
       if (((String) value).equalsIgnoreCase("")) {
         return null;
@@ -151,7 +153,7 @@ public class ModelRestImpl extends BaseRestImpl {
     } else if (value == null) {
       return null;
     } else {
-      throw new InvalidArgumentException();
+      throw new QueryException("Don't know how to change " + value.getClass() + " into Double");
     }
   }
 }