diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js
index 5b8dff96147a86b7f72d05b0cd48aacd7ebe93ca..366dc77be1d9d56af8886afb4754b4d2a3aa5900 100644
--- a/frontend-js/src/main/js/map/CustomMap.js
+++ b/frontend-js/src/main/js/map/CustomMap.js
@@ -810,7 +810,7 @@ CustomMap.prototype.retrieveOverlayDetailDataForElement = function(element, gene
         logger.warn("No information about general overlay request for overlay: ", overlayName);
         generalRequest = false;
       }
-      generalRequest = generalRequest || !overlay.allowSearchById();
+      generalRequest = generalRequest || (!overlay.allowSearchById() && overlay.allowGeneralSearch());
 
       promises.push(overlay.getDetailDataByIdentifiedElement(element, generalRequest));
     }
diff --git a/frontend-js/src/main/js/map/window/AbstractInfoWindow.js b/frontend-js/src/main/js/map/window/AbstractInfoWindow.js
index 2d4c74d768f5e3c32ee340681d245f2ae00204cc..43a631494234e09549c2d9fe4d858e7c2f97da18 100644
--- a/frontend-js/src/main/js/map/window/AbstractInfoWindow.js
+++ b/frontend-js/src/main/js/map/window/AbstractInfoWindow.js
@@ -34,18 +34,20 @@ function AbstractInfoWindow(abstractMarker, map) {
   var onOverlayFullViewChanged = function(e) {
     var self = e.object;
     // first change the content of the element
-    self.update().then(function() {
-      if (e.newVal) {
-        var element = new IdentifiedElement({
-          objectId : self.getElementId(),
-          modelId : self.getCustomMap().getId(),
-          type : self.getElementType()
+    self.update().then(
+        function() {
+          if (e.newVal) {
+            var element = new IdentifiedElement({
+              objectId : self.getElementId(),
+              modelId : self.getCustomMap().getId(),
+              type : self.getElementType()
+            });
+
+            return self.getCustomMap().getTopMap().retrieveOverlayDetailDataForElement(element,
+                self.getOverlayFullViewArray());
+          }
         });
 
-        return self.getCustomMap().getTopMap().retrieveOverlayDetailDataForElement(element, self.getOverlayFullViewArray());
-      }
-    });
-
   };
 
   // default settings of visualizing full information about elements
diff --git a/frontend-js/src/test/js/map/marker/AliasMarker-test.js b/frontend-js/src/test/js/map/marker/AliasMarker-test.js
index 5b1311374e8278124bc924807b65017e6220e6f5..64b8934aa6901deba20cce2a255a63cd24a77390 100644
--- a/frontend-js/src/test/js/map/marker/AliasMarker-test.js
+++ b/frontend-js/src/test/js/map/marker/AliasMarker-test.js
@@ -1,5 +1,9 @@
 "use strict";
 
+/* exported logger */
+
+var logger = require('../../logger');
+
 var Helper = require('../../Helper');
 
 var AliasMarker = require('../../../../main/js/map/marker/AliasMarker');
@@ -39,6 +43,7 @@ describe('AliasMarker', function() {
 
   it("click on marker", function() {
     var map;
+    var marker;
     return ServerConnector.getProject().then(function(project) {
       map = helper.createCustomMap(project);
       return map.getModel().getAliasById(329171);
@@ -46,11 +51,33 @@ describe('AliasMarker', function() {
 
       var identifiedElement = new IdentifiedElement(alias);
 
-      var aliasMarker = new AliasMarker(identifiedElement, map);
+      marker = new AliasMarker(identifiedElement, map);
+      return marker.init();
+    }).then(function() {
+      return google.maps.event.trigger(marker.getGoogleMarker(), "click");
+    });
+  });
 
-      return google.maps.event.trigger(aliasMarker.getGoogleMarker(), "click").then(function() {
+  it("click on marker when chemical is not available", function() {
+    var projectId = "complex_model_with_submaps";
+    helper.setUrl("http://test/?id=" + projectId);
+    GuiConnector.getParams["id"] = projectId;
+    var map;
+    var marker;
+    return ServerConnector.getProject(projectId).then(function(project) {
+      map = helper.createCustomMap(project);
+      var ov = helper.createChemicalDbOverlay(map);
+      ov.setAllowGeneralSearch(false);
+      ov.setAllowSearchById(false);
+      return map.getModel().getAliasById(345334);
+    }).then(function(alias) {
+      var identifiedElement = new IdentifiedElement(alias);
+
+      marker = new AliasMarker(identifiedElement, map);
+      return marker.init();
+    }).then(function() {
 
-      });
+      return google.maps.event.trigger(marker.getGoogleMarker(), "click");
     });
   });
 
diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..b30361a6e9c16b62594a8140c2a13c3e2eeb192a
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=id,bounds,modelId&id=345334&projectId=complex_model_with_submaps&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"formerSymbols":[],"references":[],"modelId":16728,"synonyms":[],"description":"","type":"Protein","compartmentId":345332,"name":"s2","bounds":{"x":201.0,"y":109.0,"width":80.0,"height":40.0},"id":345334,"hierarchyVisibilityLevel":1}]
\ No newline at end of file