diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
index a3b24463599e67ba08a275c50c4946564c75cc0f..72026b03b07907ee3aab8f54ce319ba803cc9759 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
@@ -90,6 +90,13 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
         self.selected_task_ids.push(task_id);
     }
 
+    self.setSelectedTaskIds = function(task_ids) {
+        self.selected_task_ids.splice(0, self.selected_task_ids.length);
+        for(var task_id of task_ids) {
+            self.selected_task_ids.push(task_id);
+        }
+    }
+
     self.selectTasksInSameGroup = function(task) {
         self.selected_task_ids.splice(0, self.selected_task_ids.length);
         var groupTasks = self.filteredTasks.filter(function(t) { return t.mom_object_group_id == task.mom_object_group_id; });
@@ -394,6 +401,41 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
         return _getTaskBy('mom_id', mom_id);
     };
 
+    self.getTasksByMoMGroupId = function(mom_object_group_id) {
+        var defer = $q.defer();
+        var url = '/rest/tasks/mom/group/' + mom_object_group_id;
+
+        $http.get(url).success(function(result) {
+            //convert datetime strings to Date objects
+            for(var i in result.tasks) {
+                var task = result.tasks[i];
+                task.starttime = self.convertDatestringToLocalUTCDate(task.starttime);
+                task.endtime = self.convertDatestringToLocalUTCDate(task.endtime);
+            }
+
+            var newTaskDict = self.toIdBasedDict(result.tasks);
+            var newTaskIds = Object.keys(newTaskDict);
+
+            for(var i = newTaskIds.length-1; i >= 0; i--) {
+                var task_id = newTaskIds[i];
+                if(!self.taskDict.hasOwnProperty(task_id)) {
+                    var task = newTaskDict[task_id];
+                    self.tasks.push(task);
+                    self.taskDict[task_id] = task;
+                }
+            }
+
+            self.taskChangeCntr++;
+            self.computeMinMaxTaskTimes();
+
+            defer.resolve(result.tasks);
+        }).error(function(result) {
+            defer.resolve(undefined);
+        });
+
+        return defer.promise;
+    };
+
     self.copyTask = function(task) {
         $http.put('/rest/tasks/' + task.id + '/copy').error(function(result) {
             console.log("Error. Could not copy task. " + result);
@@ -853,8 +895,10 @@ dataControllerMod.controller('DataController',
         $scope.dataService.getTaskByOTDBId(otdb_id).then(function(task) {
             if(task) {
                 $scope.dataService.setSelectedTaskId(task.id);
-                $scope.jumpToSelectedTask();
-                defer.resolve();
+                $scope.jumpToSelectedTasks();
+                defer.resolve(task);
+            } else {
+                defer.resolve(undefined);
             }
         });
         return defer.promise;
@@ -865,8 +909,26 @@ dataControllerMod.controller('DataController',
         $scope.dataService.getTaskByMoMId(mom_id).then(function(task) {
             if(task) {
                 $scope.dataService.setSelectedTaskId(task.id);
-                $scope.jumpToSelectedTask();
-                defer.resolve();
+                $scope.jumpToSelectedTasks();
+                defer.resolve(task);
+            } else {
+                defer.resolve(undefined);
+            }
+        });
+        return defer.promise;
+    };
+
+    $scope.loadTasksByMoMGroupIdSelectAndJumpIntoView = function(mom_group_id) {
+        var defer = $q.defer();
+        $scope.dataService.getTasksByMoMGroupId(mom_group_id).then(function(tasks) {
+            if(tasks) {
+                var task_ids = tasks.map(function(t) { return t.id; });
+
+                $scope.dataService.setSelectedTaskIds(task_ids);
+                $scope.jumpToSelectedTasks();
+                defer.resolve(tasks);
+            } else {
+                defer.resolve(undefined);
             }
         });
         return defer.promise;
@@ -879,7 +941,7 @@ dataControllerMod.controller('DataController',
         }
     };
 
-    $scope.jumpToSelectedTask = function() {
+    $scope.jumpToSelectedTasks = function() {
         if(dataService.selected_task_ids == undefined)
             return;
 
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/ganttprojectcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/ganttprojectcontroller.js
index 8a47ceca07c617fcc733ef6611afd26088996923..c14bb17ea2770b3f9846776cf7d6fb11cbb290e1 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/ganttprojectcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/ganttprojectcontroller.js
@@ -70,7 +70,7 @@ ganttProjectControllerMod.controller('GanttProjectController', ['$scope', 'dataS
                     directiveElement.bind('dblclick', function(event) {
                         if(directiveScope.task.model.raTask) {
                             $scope.dataService.setSelectedTaskId(directiveScope.task.model.raTask.id);
-                            $scope.jumpToSelectedTask();
+                            $scope.jumpToSelectedTasks();
                         }
                     });
                 }
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index ecd9a4d7585dd422904cd9fe52f77040e570d75c..4ad4e37b616a9acbfb188710148abe09f0308815 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -176,8 +176,17 @@ $scope.columns = [
 
                             if(mom_col && mom_col.filters.length && mom_col.filters[0].hasOwnProperty('term')) {
                                 var mom_id = mom_col.filters[0].term;
-                                $scope.$parent.$parent.loadTaskByMoMIdSelectAndJumpIntoView(mom_id).then(function() {
-                                    mom_col.filters[0].term = null;
+                                $scope.$parent.$parent.loadTaskByMoMIdSelectAndJumpIntoView(mom_id).then(function(task) {
+                                    if(task) {
+                                        mom_col.filters[0].term = null;
+                                    } else {
+                                        //getting the task by mom_id did not find a task
+                                        //maybe the entered id was a mom group_id?
+                                        //let's try to loadTasksByMoMGroupIdSelectAndJumpIntoView
+                                        $scope.$parent.$parent.loadTasksByMoMGroupIdSelectAndJumpIntoView(mom_id).then(function(tasks) {
+                                            mom_col.filters[0].term = null;
+                                        });
+                                    }
                                 });
                             }
                         }
@@ -416,7 +425,8 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do
             ulElement.append(liElement);
             liElement.on('click', function() {
                 closeContextMenu();
-                dataService.selectTasksInSameGroup(task);
+                var dataCtrlScope = $scope.$parent.$parent.$parent.$parent.$parent.$parent.$parent.$parent.$parent.$parent;
+                dataCtrlScope.loadTasksByMoMGroupIdSelectAndJumpIntoView(task.mom_object_group_id);
             });
 
             if(task.type == 'observation' && dataService.config.inspection_plots_base_url) {
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js
index a984d94472082661301132df0530c0a56a762e70..7f4c7306f3242c4c9e629389e650930763d2d59b 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/gantt-plugins/angular-gantt-contextmenu-plugin.js
@@ -27,6 +27,7 @@
                         dElement.bind('contextmenu', function(event) {
                             //TODO: remove link to dataService in this generic plugin
                             var dataService = dScope.scope.dataService;
+                            var dataCtrlScope = dScope.scope.$parent.$parent;
                             var cleanupCtrl = dScope.scope.$parent.cleanupCtrl;
                             var docElement = angular.element($document);
 
@@ -74,7 +75,7 @@
                             ulElement.append(liElement);
                             liElement.on('click', function() {
                                 closeContextMenu();
-                                dataService.selectTasksInSameGroup(task);
+                                dataCtrlScope.loadTasksByMoMGroupIdSelectAndJumpIntoView(task.mom_object_group_id);
                             });
 
                             if(task.type == 'observation' && dataService.config.inspection_plots_base_url) {
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
index d0065fe8eb66ced81217ae8c4f9c274d8d311cf1..56b5ccec688b42db93e3e8a53005b5bbd59e2c8b 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
@@ -266,6 +266,18 @@ def getTaskByMoMId(mom_id):
 
     return jsonify({'task': None})
 
+@app.route('/rest/tasks/mom/group/<int:mom_group_id>', methods=['GET'])
+def getTasksByMoMGroupId(mom_group_id):
+    try:
+        mom_ids = momqueryrpc.getTaskIdsInGroup(mom_group_id)[str(mom_group_id)]
+        tasks = rarpc.getTasks(mom_ids=mom_ids)
+
+        updateTaskMomDetails(tasks, momqueryrpc)
+
+        return jsonify({'tasks': tasks})
+    except Exception as e:
+        abort(404)
+
 @app.route('/rest/tasks/<int:task_id>', methods=['PUT'])
 def putTask(task_id):
     if isProductionEnvironment():