diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js
index a09ffb94f0f06043855c2276e63b96fffcfa6f09..da7011f327e098a5ef8726ce679712686bfcc467 100644
--- a/frontend-js/src/main/js/ServerConnector.js
+++ b/frontend-js/src/main/js/ServerConnector.js
@@ -1631,7 +1631,8 @@ ServerConnector.updateOverlay = function (overlay) {
       name: overlay.getName(),
       description: overlay.getDescription(),
       creator: overlay.getCreator(),
-      publicOverlay: overlay.getPublicOverlay()
+      publicOverlay: overlay.getPublicOverlay(),
+      defaultOverlay: overlay.isDefaultOverlay()
     }
   };
   return self.sendPatchRequest(self.updateOverlayUrl(queryParams), filterParams);
diff --git a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
index 971eabefe339389b03f8f7d3c47c2c90812910b3..e2787d54924ec822a91244b216cfb8c4dca5a2e9 100644
--- a/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
+++ b/frontend-js/src/main/js/gui/admin/EditProjectDialog.js
@@ -287,6 +287,8 @@ EditProjectDialog.prototype._createOverlayTable = function () {
       title: 'Description'
     }, {
       title: 'Public'
+    }, {
+      title: 'Default'
     }, {
       title: 'Owner'
     }, {
@@ -536,6 +538,12 @@ EditProjectDialog.prototype.overlayToTableRow = function (overlay, users) {
   }
   var publicOverlayCheckbox = "<input type='checkbox' name='publicOverlay-" + id + "' " + checked + "/>";
 
+  checked = '';
+  if (overlay.isDefaultOverlay()) {
+    checked = "checked";
+  }
+  var defaultOverlayCheckbox = "<input type='checkbox' name='defaultOverlay-" + id + "' " + checked + "/>";
+
   var downloadSourceButton;
   if (overlay.getInputDataAvailable()) {
     downloadSourceButton = "<button name='downloadSource' data='" + id + "'>"
@@ -548,10 +556,11 @@ EditProjectDialog.prototype.overlayToTableRow = function (overlay, users) {
   row[1] = "<input name='name-" + id + "' value='" + overlay.getName() + "'/>";
   row[2] = "<input name='description-" + id + "' value='" + overlay.getDescription() + "'/>";
   row[3] = publicOverlayCheckbox;
-  row[4] = creatorSelect;
-  row[5] = downloadSourceButton;
-  row[6] = "<button name='saveOverlay' data='" + id + "'>SAVE</button>";
-  row[7] = "<button name='removeOverlay' data='" + id + "'>REMOVE</button>";
+  row[4] = defaultOverlayCheckbox;
+  row[5] = creatorSelect;
+  row[6] = downloadSourceButton;
+  row[7] = "<button name='saveOverlay' data='" + id + "'>SAVE</button>";
+  row[8] = "<button name='removeOverlay' data='" + id + "'>REMOVE</button>";
 
   return row;
 };
@@ -625,6 +634,7 @@ EditProjectDialog.prototype.saveOverlay = function (overlayId) {
   overlay.setName($("[name='name-" + overlayId + "']", self.getElement())[0].value);
   overlay.setDescription($("[name='description-" + overlayId + "']", self.getElement())[0].value);
   overlay.setPublicOverlay($("[name='publicOverlay-" + overlayId + "']", self.getElement())[0].checked);
+  overlay.setDefaultOverlay($("[name='defaultOverlay-" + overlayId + "']", self.getElement())[0].checked);
   overlay.setCreator($("[name='creator-" + overlayId + "']", self.getElement())[0].value);
 
   return ServerConnector.updateOverlay(overlay);
diff --git a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
index d6ebbb214bda55b40fb90e0bddb5ac6090dbe514..f463cc86b00bbc855fe243a25577ee2b4d0b5196 100644
--- a/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
+++ b/frontend-js/src/main/js/gui/leftPanel/GuiUtils.js
@@ -243,6 +243,16 @@ GuiUtils.prototype.createTextArea = function (value) {
   return result;
 };
 
+GuiUtils.prototype.createCheckbox = function (value) {
+  var result = document.createElement("input");
+  result.type = "checkbox";
+
+  if (value) {
+    result.checked = true;
+  }
+  return result;
+};
+
 GuiUtils.prototype.createParamLine = function (label, value) {
   var result = document.createElement("div");
   if (value !== undefined && value !== null && value !== "") {
diff --git a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
index 59a9c11b038ce6328d372d3801fa8aaa8fd67762..1300eb5498d110faf62b3b29a00bbe8323261c28 100644
--- a/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/OverlayPanel.js
@@ -7,12 +7,11 @@ var Panel = require('../Panel');
 var PanelControlElementType = require('../PanelControlElementType');
 
 var GuiConnector = require('../../GuiConnector');
+// noinspection JSUnusedLocalSymbols
 var logger = require('../../logger');
 var Functions = require('../../Functions');
-var NetworkError = require('../../NetworkError');
 
 var Promise = require('bluebird');
-var HttpStatus = require('http-status-codes');
 
 function OverlayPanel(params) {
   params.panelName = "overlays";
@@ -148,7 +147,7 @@ OverlayPanel.prototype.createOverlayRow = function (overlay, checked) {
   var guiUtils = self.getGuiUtils();
   var result = document.createElement("tr");
 
-  if (checked) {
+  if (checked && !overlay.getInputDataAvailable()) {
     result.className = "active";
   }
 
@@ -262,11 +261,11 @@ OverlayPanel.prototype.openEditOverlayDialog = function (overlay) {
     id: overlay.getId(),
     buttons: buttons,
     title: "Data overlay: " + overlay.getName(),
-    className: "minerva-overlay-dialog",
+    className: "minerva-overlay-dialog"
   });
 };
 
-OverlayPanel.prototype.refresh = function () {
+OverlayPanel.prototype.refresh = function (showDefault) {
   var self = this;
   var user = null;
 
@@ -286,65 +285,83 @@ OverlayPanel.prototype.refresh = function () {
 
     return ServerConnector.getOverlays({
       publicOverlay: false,
-      creator: user.getLogin(),
+      creator: user.getLogin()
     });
-  }).then(
-    function (customOverlays) {
+  }).then(function (customOverlays) {
 
-      var id = self.getMap().getGoogleMap().getMapTypeId().substring(2);
+    if (!showDefault) {
+      var id = self.getMap().getGoogleMap().getMapTypeId().replace(/\D/g, '');
       selectedOverlay[id] = true;
+    }
 
-      self.clear();
+    self.clear();
 
-      var generalOverlays = [];
-      var overlay;
+    var generalOverlays = [];
+    var overlay;
 
-      var overlays = self.getMap().getLayouts();
-      for (var i = 0; i < overlays.length; i++) {
-        overlay = overlays[i];
-        if (overlay.getCreator() === undefined || overlay.getCreator() === "") {
-          generalOverlays.push(overlay);
+    var overlays = self.getMap().getLayouts();
+    for (var i = 0; i < overlays.length; i++) {
+      overlay = overlays[i];
+      if (overlay.getCreator() === undefined || overlay.getCreator() === "") {
+        generalOverlays.push(overlay);
+        if (showDefault && overlay.isDefaultOverlay()) {
+          selectedOverlay[overlay.getId()] = true;
         }
       }
+    }
+
+    var table = self.getControlElement(PanelControlElementType.OVERLAY_GENERAL_OVERLAY_TABLE);
+    table.appendChild(self.createTableHeader());
 
-      var table = self.getControlElement(PanelControlElementType.OVERLAY_GENERAL_OVERLAY_TABLE);
-      table.appendChild(self.createTableHeader());
+    var body = document.createElement("tbody");
+    table.appendChild(body);
+    for (i = 0; i < generalOverlays.length; i++) {
+      overlay = generalOverlays[i];
+      body.appendChild(self.createOverlayRow(overlay, selectedOverlay[overlay.getId()]));
+    }
 
-      var body = document.createElement("tbody");
+    var title = self.getControlElement(PanelControlElementType.OVERLAY_CUSTOM_OVERLAY_TITLE);
+    var addButton = self.getControlElement(PanelControlElementType.OVERLAY_ADD_OVERLAY_BUTTON);
+    if (user.getLogin() === "anonymous") {
+      title.innerHTML = 'YOU ARE NOT LOGGED IN. PLEASE, <a href="#">LOG IN</a>'
+        + 'TO UPLOAD AND VIEW CUSTOM OVERLAYS<br/><center><button>LOGIN</button></center>';
+      var openLoginDialog = function () {
+        return self.getParent().getLoginDialog().open();
+      };
+      $(title).find("a")[0].onclick = openLoginDialog;
+      $(title).find("button")[0].onclick = openLoginDialog;
+      addButton.style.display = "none";
+    } else {
+      title.innerHTML = self.getCustomOverlaysMessage();
+      addButton.style.display = "block";
+
+      table = self.getControlElement(PanelControlElementType.OVERLAY_CUSTOM_OVERLAY_TABLE);
+      table.appendChild(self.createTableHeader(true));
+
+      body = document.createElement("tbody");
       table.appendChild(body);
-      for (i = 0; i < generalOverlays.length; i++) {
-        overlay = generalOverlays[i];
+      for (i = 0; i < customOverlays.length; i++) {
+        overlay = customOverlays[i];
+        if (showDefault && overlay.isDefaultOverlay()) {
+          selectedOverlay[overlay.getId()] = true;
+        }
         body.appendChild(self.createOverlayRow(overlay, selectedOverlay[overlay.getId()]));
       }
+    }
 
-      var title = self.getControlElement(PanelControlElementType.OVERLAY_CUSTOM_OVERLAY_TITLE);
-      var addButton = self.getControlElement(PanelControlElementType.OVERLAY_ADD_OVERLAY_BUTTON);
-      if (user.getLogin() === "anonymous") {
-        title.innerHTML = 'YOU ARE NOT LOGGED IN. PLEASE, <a href="#">LOG IN</a>'
-          + 'TO UPLOAD AND VIEW CUSTOM OVERLAYS<br/><center><button>LOGIN</button></center>';
-        var openLoginDialog = function () {
-          return self.getParent().getLoginDialog().open();
-        };
-        $(title).find("a")[0].onclick = openLoginDialog;
-        $(title).find("button")[0].onclick = openLoginDialog;
-        addButton.style.display = "none";
-      } else {
-        title.innerHTML = self.getCustomOverlaysMessage();
-        addButton.style.display = "block";
-
-        table = self.getControlElement(PanelControlElementType.OVERLAY_CUSTOM_OVERLAY_TABLE);
-        table.appendChild(self.createTableHeader(true));
+    self.onresize();
 
-        body = document.createElement("tbody");
-        table.appendChild(body);
-        for (i = 0; i < customOverlays.length; i++) {
-          overlay = customOverlays[i];
-          body.appendChild(self.createOverlayRow(overlay, selectedOverlay[overlay.getId()]));
+    var promises = [];
+    if (showDefault) {
+      for (var key in selectedOverlay) {
+        if (selectedOverlay.hasOwnProperty(key) && selectedOverlay[key]) {
+          logger.debug(key);
+          promises.push(self.getMap().openDataOverlay(key));
         }
       }
-
-      self.onresize();
-    });
+    }
+    return Promise.all(promises);
+  });
 };
 
 OverlayPanel.prototype.setCustomOverlaysMessage = function (customOverlaysMessage) {
@@ -364,7 +381,7 @@ OverlayPanel.prototype.openAddOverlayDialog = function () {
   self._addOverlayDialog = new AddOverlayDialog({
     project: self.getProject(),
     customMap: self.getMap(),
-    element: document.createElement("div"),
+    element: document.createElement("div")
   });
   self._addOverlayDialog.addListener("onAddOverlay", function (e) {
     self.getMap().getModel().addLayout(e.arg);
@@ -376,7 +393,11 @@ OverlayPanel.prototype.openAddOverlayDialog = function () {
 };
 
 OverlayPanel.prototype.init = function () {
-  return this.refresh();
+  var backgroundOverlay = ServerConnector.getSessionData().getSelectedBackgroundOverlay();
+  var showDefault = (backgroundOverlay === undefined || backgroundOverlay === "undefined");
+  logger.debug(ServerConnector.getSessionData().getSelectedBackgroundOverlay());
+  logger.debug(showDefault);
+  return this.refresh(showDefault);
 };
 
 OverlayPanel.prototype.destroy = function () {
diff --git a/frontend-js/src/main/js/map/data/LayoutData.js b/frontend-js/src/main/js/map/data/LayoutData.js
index bbf8483f1f5c7e2c3e4d620a6a785f8027194171..ff680edb956b0c4e4294793856e38ed26821eb88 100644
--- a/frontend-js/src/main/js/map/data/LayoutData.js
+++ b/frontend-js/src/main/js/map/data/LayoutData.js
@@ -24,6 +24,7 @@ function LayoutData(layoutId, name) {
     this.setContent(object.content);
     this.setFilename(object.filename);
     this.setPublicOverlay(object.publicOverlay);
+    this.setDefaultOverlay(object.defaultOverlay);
     this.setInputDataAvailable(object.inputDataAvailable);
     this.setType(object.type);
     if (!this.getInputDataAvailable()) {
@@ -194,6 +195,14 @@ LayoutData.prototype.setPublicOverlay = function (publicOverlay) {
   this._publicOverlay = publicOverlay;
 };
 
+LayoutData.prototype.isDefaultOverlay = function () {
+  return this._defaultOverlay;
+};
+
+LayoutData.prototype.setDefaultOverlay = function (defaultOverlay) {
+  this._defaultOverlay = defaultOverlay;
+};
+
 LayoutData.prototype.getContent = function () {
   return this._content;
 };
diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index 71b007ad67a6e48c7b97fdd0b4538765c3c4668a..7d4b44a5a1bced8389c427c75e431691a0162d12 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -320,11 +320,11 @@ function create(params) {
     return mapContextMenu.init();
   }).then(function () {
     if (GuiConnector.getParams["layout"] !== undefined) {
-      var layouts = params.getProject().getModel().getLayouts();
-      for (var j = 0; j < layouts.length; j++) {
-        var layout = layouts[j];
-        if (layout.getName() === GuiConnector.getParams["layout"]) {
-          return customMap.openDataOverlay(layout);
+      var overlays = params.getProject().getModel().getLayouts();
+      for (var j = 0; j < overlays.length; j++) {
+        var overlay = overlays[j];
+        if (overlay.getName() === GuiConnector.getParams["layout"]) {
+          return customMap.openDataOverlay(overlay);
         }
       }
     }
diff --git a/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js b/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
index 6e16c5a8811ec1cca06f7f218153fd2633b108ef..886be165571c46a0af9a93f43501f18653bb575e 100644
--- a/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
+++ b/frontend-js/src/test/js/gui/admin/EditProjectDialog-test.js
@@ -1,10 +1,9 @@
 "use strict";
 
-/* exported assert */
-/* exported logger */
 require("../../mocha-config");
 
 var EditProjectDialog = require('../../../../main/js/gui/admin/EditProjectDialog');
+var ServerConnector = require('../../ServerConnector-mock');
 var logger = require('../../logger');
 
 var assert = require('assert');
@@ -23,6 +22,7 @@ describe('EditProjectDialog', function () {
       });
       return dialog.open();
     }).then(function () {
+      assert.equal(0, logger.getWarnings().length);
       dialog.destroy();
     });
   });
diff --git a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
index fc269f84926f0aab6fe081e53974dd1bf9e5824f..b6faaa7c7aa0fe615aeac69b9e20b88ab10a5929 100644
--- a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js
@@ -10,99 +10,99 @@ var logger = require('../../logger');
 
 describe('OverlayPanel', function () {
 
-    it('constructor', function () {
-        var map = helper.createCustomMap();
-
-        new OverlayPanel({
-            element: testDiv,
-            customMap: map
-        });
-        assert.equal(logger.getWarnings().length, 0);
+  it('constructor', function () {
+    var map = helper.createCustomMap();
+
+    new OverlayPanel({
+      element: testDiv,
+      customMap: map
     });
+    assert.equal(logger.getWarnings().length, 0);
+  });
 
-    it('refresh', function () {
-        var map = helper.createCustomMap();
+  it('refresh', function () {
+    var map = helper.createCustomMap();
 
-        var panel = new OverlayPanel({
-            element: testDiv,
-            customMap: map
-        });
+    var panel = new OverlayPanel({
+      element: testDiv,
+      customMap: map
+    });
 
-        return panel.refresh().then(function () {
-            assert.ok(panel.getElement().innerHTML.indexOf("testLayout") >= 0);
-            assert.ok(panel.getElement().innerHTML.indexOf("YOU ARE NOT LOGGED") >= 0);
-        });
+    return panel.refresh().then(function () {
+      assert.ok(panel.getElement().innerHTML.indexOf("testLayout") >= 0);
+      assert.ok(panel.getElement().innerHTML.indexOf("YOU ARE NOT LOGGED") >= 0);
     });
+  });
 
-    it('createRow', function () {
-        var map = helper.createCustomMap();
-
-        var overlay = helper.createLayout();
-        overlay.setInputDataAvailable(true);
-        overlay.setCreator("me");
-        map.getModel().addLayout(overlay);
-
-        var panel = new OverlayPanel({
-            element: testDiv,
-            customMap: map
-        });
-
-        var row = panel.createOverlayRow(overlay);
-        assert.ok(row);
-
-        var buttons = row.getElementsByTagName("button");
-        var openButton = null;
-        for (var i = 0; i < buttons.length; i++) {
-            var name = buttons[i].getAttribute("name");
-            if (name !== undefined && name.indexOf("editButton") >= 0) {
-                openButton = buttons[i];
-            }
-        }
-        assert.ok(openButton);
-        openButton.onclick();
-        return panel.destroy();
+  it('createRow', function () {
+    var map = helper.createCustomMap();
+
+    var overlay = helper.createLayout();
+    overlay.setInputDataAvailable(true);
+    overlay.setCreator("me");
+    map.getModel().addLayout(overlay);
+
+    var panel = new OverlayPanel({
+      element: testDiv,
+      customMap: map
     });
-    it('download', function () {
-        var map = helper.createCustomMap();
-
-        var overlay = helper.createLayout();
-        overlay.setInputDataAvailable(true);
-        map.getModel().addLayout(overlay);
-
-        var panel = new OverlayPanel({
-            element: testDiv,
-            customMap: map
-        });
-
-        return panel.refresh().then(function () {
-            var buttons = panel.getElement().getElementsByTagName("button");
-            var downloadButton;
-            for (var i = 0; i < buttons.length; i++) {
-                var name = buttons[i].getAttribute("name");
-                if (name !== undefined && name !== null && name.indexOf("download-overlay") >= 0) {
-                    downloadButton = buttons[i];
-                }
-            }
-            assert.ok(downloadButton);
-            assert.notOk(panel.getLastDownloadUrl());
-            return downloadButton.onclick();
-        }).then(function () {
-            assert.ok(panel.getLastDownloadUrl());
-        });
+
+    var row = panel.createOverlayRow(overlay);
+    assert.ok(row);
+
+    var buttons = row.getElementsByTagName("button");
+    var openButton = null;
+    for (var i = 0; i < buttons.length; i++) {
+      var name = buttons[i].getAttribute("name");
+      if (name !== undefined && name.indexOf("editButton") >= 0) {
+        openButton = buttons[i];
+      }
+    }
+    assert.ok(openButton);
+    openButton.onclick();
+    return panel.destroy();
+  });
+  it('download', function () {
+    var map = helper.createCustomMap();
+
+    var overlay = helper.createLayout();
+    overlay.setInputDataAvailable(true);
+    map.getModel().addLayout(overlay);
+
+    var panel = new OverlayPanel({
+      element: testDiv,
+      customMap: map
     });
 
-    it('openAddOverlayDialog', function () {
-        var map = helper.createCustomMap();
+    return panel.refresh().then(function () {
+      var buttons = panel.getElement().getElementsByTagName("button");
+      var downloadButton;
+      for (var i = 0; i < buttons.length; i++) {
+        var name = buttons[i].getAttribute("name");
+        if (name !== undefined && name !== null && name.indexOf("download-overlay") >= 0) {
+          downloadButton = buttons[i];
+        }
+      }
+      assert.ok(downloadButton);
+      assert.notOk(panel.getLastDownloadUrl());
+      return downloadButton.onclick();
+    }).then(function () {
+      assert.ok(panel.getLastDownloadUrl());
+    });
+  });
 
-        var panel = new OverlayPanel({
-            element: testDiv,
-            customMap: map
-        });
+  it('openAddOverlayDialog', function () {
+    var map = helper.createCustomMap();
+
+    var panel = new OverlayPanel({
+      element: testDiv,
+      customMap: map
+    });
 
-        return panel.openAddOverlayDialog().then(function () {
-            return panel.destroy();
-        });
+    return panel.openAddOverlayDialog().then(function () {
+      return panel.destroy();
     });
+  });
 
 
 });
diff --git a/frontend-js/testFiles/apiCalls/projects/all/overlays/14081/PATCH_overlay.name=Pathways and compartments&overlay.publicOverlay=true&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/all/overlays/14081/PATCH_overlay.defaultOverlay=false&overlay.name=Pathways and compartments&overlay.publicOverlay=true&token=MOCK_TOKEN_ID&
similarity index 100%
rename from frontend-js/testFiles/apiCalls/projects/all/overlays/14081/PATCH_overlay.name=Pathways and compartments&overlay.publicOverlay=true&token=MOCK_TOKEN_ID&
rename to frontend-js/testFiles/apiCalls/projects/all/overlays/14081/PATCH_overlay.defaultOverlay=false&overlay.name=Pathways and compartments&overlay.publicOverlay=true&token=MOCK_TOKEN_ID&