diff --git a/frontend-js/src/main/js/gui/ContextMenu.js b/frontend-js/src/main/js/gui/ContextMenu.js
index 4bae539d2eb0f682a10a0b741e29a7cbe2c75b7c..86ef13636fdff442d76495dcc0bbe2d8406bc3e7 100644
--- a/frontend-js/src/main/js/gui/ContextMenu.js
+++ b/frontend-js/src/main/js/gui/ContextMenu.js
@@ -24,7 +24,12 @@ function ContextMenu(params) {
   self.MIN_SHOW_TIME = 2000;
 
   self._documentClickListener = function (e) {
-    if (e.target.className.indexOf("dropdown-link") === -1) {
+    var className = e.target.className;
+    if (typeof className === 'string' || className instanceof String) {
+      if (className.indexOf("dropdown-link") === -1) {
+        self.hide(e.timeStamp - self.MIN_SHOW_TIME);
+      }
+    } else {
       self.hide(e.timeStamp - self.MIN_SHOW_TIME);
     }
   };
diff --git a/frontend-js/src/test/js/gui/ContextMentu-test.js b/frontend-js/src/test/js/gui/ContextMentu-test.js
index c1779f35e268d560462e5a3d78b545a18696fbb1..2c40461755a2950f4ca9740c09f8242c1250c4a1 100644
--- a/frontend-js/src/test/js/gui/ContextMentu-test.js
+++ b/frontend-js/src/test/js/gui/ContextMentu-test.js
@@ -8,25 +8,25 @@ var chai = require('chai');
 var assert = chai.assert;
 var logger = require('../logger');
 
-describe('ContextMenu', function() {
+describe('ContextMenu', function () {
 
-  it('constructor', function() {
+  it('constructor', function () {
     var map = helper.createCustomMap();
 
     new ContextMenu({
-      element : testDiv,
-      customMap : map
+      element: testDiv,
+      customMap: map
     });
 
     assert.equal(logger.getWarnings().length, 0);
   });
 
-  it('open', function() {
+  it('open', function () {
     var map = helper.createCustomMap();
 
     var menu = new ContextMenu({
-      element : testDiv,
-      customMap : map
+      element: testDiv,
+      customMap: map
     });
 
     var event = document.createEvent('MouseEvent');
@@ -34,16 +34,31 @@ describe('ContextMenu', function() {
     assert.equal(logger.getWarnings().length, 0);
   });
 
-  it('hide', function() {
+  it('hide', function () {
     var map = helper.createCustomMap();
 
     var menu = new ContextMenu({
-      element : testDiv,
-      customMap : map
+      element: testDiv,
+      customMap: map
     });
 
     menu.hide();
     assert.equal(logger.getWarnings().length, 0);
+    return menu.destroy();
+  });
+
+  it('documentClickListener', function () {
+    var map = helper.createCustomMap();
+
+    var menu = new ContextMenu({
+      element: testDiv,
+      customMap: map
+    });
+
+    menu._documentClickListener({target: {className: {}}});
+
+    return menu.destroy();
+
   });
 
 });