diff --git a/frontend-js/src/main/js/gui/ContextMenu.js b/frontend-js/src/main/js/gui/ContextMenu.js
index fd810331d0c9abded61ac1fe163d40034e067e73..65573410e5085e693b8b0da6045d6c3c0e65c7f1 100644
--- a/frontend-js/src/main/js/gui/ContextMenu.js
+++ b/frontend-js/src/main/js/gui/ContextMenu.js
@@ -10,6 +10,8 @@ var Functions = require('../Functions');
 
 var logger = require('../logger');
 
+var MARGIN = 5;
+
 function ContextMenu(params) {
   AbstractGuiElement.call(this, params);
   var self = this;
@@ -79,9 +81,18 @@ ContextMenu.prototype.open = function (x, y, timestamp) {
   var self = this;
   self._handledTimeStamp = timestamp;
 
+  var left = x;
+  var right = "";
+
+  if ($(self.getElement()).width() + x + MARGIN > $(document).width()) {
+    left = Math.max(0, $(document).width() - $(self.getElement()).width() - MARGIN);
+    right = 0;
+  }
+
   $(self.getElement()).show().css({
     position: "absolute",
-    left: x,
+    left: left,
+    right: right,
     top: y
   }).off('click').on('click', 'a', function (e) {
     //close if this is not a submenu