diff --git a/frontend-js/src/main/js/gui/OverviewDialog.js b/frontend-js/src/main/js/gui/OverviewDialog.js
index 648702aa0725f821a82f7e377fe6e90259183507..93d84c6492ccf722a26a84d2e576687d31fd3e4b 100644
--- a/frontend-js/src/main/js/gui/OverviewDialog.js
+++ b/frontend-js/src/main/js/gui/OverviewDialog.js
@@ -12,15 +12,15 @@ function OverviewDialog(params) {
   AbstractGuiElement.call(this, params);
   var self = this;
   $(self.getElement()).dialog({
-    autoOpen : false,
-    resizable : false,
+    autoOpen: false,
+    resizable: false,
   });
 }
 
 OverviewDialog.prototype = Object.create(AbstractGuiElement.prototype);
 OverviewDialog.prototype.constructor = OverviewDialog;
 
-OverviewDialog.prototype.showOverview = function(overviewImageId) {
+OverviewDialog.prototype.showOverview = function (overviewImageId) {
   var self = this;
   var map = self.getMap();
 
@@ -98,8 +98,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) {
     var xNormal = xPosition / currentRatio;
     var yNormal = yPosition / currentRatio;
     var point = {
-      x : xNormal,
-      y : yNormal
+      x: xNormal,
+      y: yNormal
     };
 
     var link = null;
@@ -131,8 +131,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) {
   }
 
   this.overviewImage.mousePos = {
-    x : 0,
-    y : 0
+    x: 0,
+    y: 0
   };
 
   // this listener should be called when mouse moves over image, it purpose is
@@ -150,8 +150,8 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) {
     var xNormal = position.x / currentRatio;
     var yNormal = position.y / currentRatio;
     var point = {
-      x : xNormal,
-      y : yNormal
+      x: xNormal,
+      y: yNormal
     };
 
     if (self.overviewImage.mousePos.x !== position.x || self.overviewImage.mousePos.y !== position.y) {
@@ -179,7 +179,7 @@ OverviewDialog.prototype.showOverview = function(overviewImageId) {
   $(self.getElement()).dialog("open");
 };
 
-OverviewDialog.prototype.openLink = function(link) {
+OverviewDialog.prototype.openLink = function (link) {
   var self = this;
   var map = self.getMap();
   if (link.type === "OverviewModelLink") {
@@ -197,14 +197,15 @@ OverviewDialog.prototype.openLink = function(link) {
     self.showOverview(link.imageLinkId);
   } else if (link.type === "OverviewSearchLink") {
     logger.debug("Sending search query. Query: " + link.query);
-    GuiConnector.search(link.query);
-    $(self.getElement()).dialog("close");
+    return map.getOverlayByName("search").searchByQuery(link.query).then(function () {
+      $(self.getElement()).dialog("close");
+    }, GuiConnector.alert);
   } else {
     logger.warn("Unknown type of link: " + link.type + ". Don't know what to do... LinkId: " + link.idObject);
   }
 };
 
-OverviewDialog.prototype.drawClickableShapes = function(canvas, ratio) {
+OverviewDialog.prototype.drawClickableShapes = function (canvas, ratio) {
   var ctx = canvas.getContext("2d");
   // clear canvas
   ctx.clearRect(0, 0, canvas.width, canvas.height);
@@ -223,7 +224,7 @@ OverviewDialog.prototype.drawClickableShapes = function(canvas, ratio) {
   }
 };
 
-OverviewDialog.prototype.destroy = function() {
+OverviewDialog.prototype.destroy = function () {
   $(this.getElement()).dialog("destroy");
 };
 
diff --git a/frontend-js/src/test/js/gui/OverviewDialog-test.js b/frontend-js/src/test/js/gui/OverviewDialog-test.js
index 862bdeb351416b6171ac1ac9625ea3a81a85bc70..c214b9cf45ccf8a8a22b41de4c44b0f0262690b1 100644
--- a/frontend-js/src/test/js/gui/OverviewDialog-test.js
+++ b/frontend-js/src/test/js/gui/OverviewDialog-test.js
@@ -1,8 +1,7 @@
 "use strict";
 
-/* exported logger,assert */
-
 require("../mocha-config.js");
+var ServerConnector = require('../ServerConnector-mock');
 
 var CustomMap = require('../../../main/js/map/CustomMap');
 var OverviewDialog = require('../../../main/js/gui/OverviewDialog');
@@ -11,17 +10,17 @@ var chai = require('chai');
 var assert = chai.assert;
 var logger = require('../logger');
 
-describe('OverviewDialog', function() {
+describe('OverviewDialog', function () {
 
-  it('open image', function() {
+  it('open image', function () {
     helper.setUrl("http://test/?id=complex_model_with_images");
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       var options = helper.createOptions(project);
       var map = new CustomMap(options);
 
       var dialog = new OverviewDialog({
-        element : testDiv,
-        customMap : map
+        element: testDiv,
+        customMap: map
       });
 
       dialog.showOverview(project.getOverviewImages()[1].idObject);
@@ -29,15 +28,15 @@ describe('OverviewDialog', function() {
     });
   });
 
-  it('open invalid image', function() {
+  it('open invalid image', function () {
     helper.setUrl("http://test/?id=complex_model_with_images");
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnector.getProject().then(function (project) {
       var options = helper.createOptions(project);
       var map = new CustomMap(options);
 
       var dialog = new OverviewDialog({
-        element : testDiv,
-        customMap : map
+        element: testDiv,
+        customMap: map
       });
 
       dialog.showOverview(-1123);
@@ -45,22 +44,21 @@ describe('OverviewDialog', function() {
     });
   });
 
-  describe('openLink', function() {
-    it('link to map', function() {
+  describe('openLink', function () {
+    it('link to map', function () {
       helper.setUrl("http://test/?id=complex_model_with_images");
-      return ServerConnector.getProject().then(function(project) {
-        var options = helper.createOptions(project);
-        var map = new CustomMap(options);
+      return ServerConnector.getProject().then(function (project) {
+        var map = helper.createCustomMap(project);
 
         var dialog = new OverviewDialog({
-          element : testDiv,
-          customMap : map
+          element: testDiv,
+          customMap: map
         });
-        
+
         dialog.openLink({
-          type : "OverviewModelLink",
-          modelLinkId : map.getId(),
-          latLng : new google.maps.LatLng(1, 34)
+          type: "OverviewModelLink",
+          modelLinkId: map.getId(),
+          latLng: new google.maps.LatLng(1, 34)
         });
         assert.equal(logger.getWarnings().length, 0);
         assert.equal(1, map.getGoogleMap().getCenter().lat());
@@ -68,6 +66,32 @@ describe('OverviewDialog', function() {
         dialog.destroy();
       });
     });
+    it('link to search', function () {
+      helper.setUrl("http://test/?id=complex_model_with_images");
+      var dialog, searchOverlay;
+      return ServerConnector.getProject().then(function (project) {
+        var map = helper.createCustomMap(project);
+        searchOverlay = helper.createSearchDbOverlay(map);
+
+        dialog = new OverviewDialog({
+          element: testDiv,
+          customMap: map
+        });
+
+        return dialog.openLink({
+          type: "OverviewSearchLink",
+          query: "some_query"
+        });
+      }).then(function () {
+        assert.equal(logger.getWarnings().length, 0);
+        assert.equal(1, searchOverlay.getQueries().length);
+        return searchOverlay.getIdentifiedElements();
+      }).then(function (elements) {
+        assert.equal(0, elements.length);
+      }).finally(function () {
+        dialog.destroy();
+      });
+    });
   });
 
 });
diff --git a/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..0637a088a01e8ddab3bf3fa98dbe804cbde1a0dc
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/projects/complex_model_with_images/models/all/bioEntities.search/query=some_query&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[]
\ No newline at end of file