diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/main/ob-standard-window.js
@@ -235,7 +235,7 @@
         len = parts.length,
         className = '_',
         tabSet = OB.MainView.TabSet,
-        vStack, manualJS, originalClassName, processClass;
+        vStack, manualJS, originalClassName, processClass, processOwnerView;
 
     if (params.uiPattern === 'M') { // Manual UI Pattern
       try {
@@ -260,9 +260,12 @@
         processClass = isc[className] || isc[originalClassName];
 
         if (processClass) {
-          this.selectedState = this.activeView && this.activeView.viewGrid && this.activeView.viewGrid.getSelectedState();
+          processOwnerView = this.getProcessOwnerView(params.processId);
+          this.selectedState = processOwnerView.viewGrid && processOwnerView.viewGrid.getSelectedState();
           this.runningProcess = processClass.create(isc.addProperties({}, params, {
-            parentWindow: this
+            parentWindow: this,
+            sourceView: this.activeView,
+            buttonOwnerView: processOwnerView
           }));
 
           this.openPopupInTab(this.runningProcess, params.windowTitle, (this.runningProcess.popupWidth ? this.runningProcess.popupWidth : '90%'), (this.runningProcess.popupHeight ? this.runningProcess.popupHeight : '90%'), (this.runningProcess.showMinimizeButton ? this.runningProcess.showMinimizeButton : false), (this.runningProcess.showMaximizeButton ? this.runningProcess.showMaximizeButton : false), true, true);
@@ -1081,5 +1084,20 @@
     }
     this.viewState = result;
     OB.PropertyStore.set('OBUIAPP_GridConfiguration', result, this.windowId);
+  },
+
+  getProcessOwnerView: function (processId) {
+    var ownerView, i, j, nActionButtons, nViews = this.views.length;
+    for (i = 0; i < length; i++) {
+      nActionButtons = this.views[i].actionToolbarButtons.length;
+      for (j = 0; j < nActionButtons; j++) {
+        if (processId === this.views[i].actionToolbarButtons[j].processId) {
+          return this.views[i];
+        }
+      }
+      // If it is not found, return the header view
+      return this.view;
+    }
+
   }
 });
\ No newline at end of file
diff --git a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-pick-and-execute-view.js b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-pick-and-execute-view.js
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-pick-and-execute-view.js
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-pick-and-execute-view.js
@@ -202,6 +202,8 @@
       window.view.messageBar.setMessage(message.severity, message.text);
     }
 
+    this.buttonOwnerView.setAsActiveView();
+
     if (refresh) {
       window.refresh();
     }
@@ -318,7 +320,7 @@
     var i, tmp, view = this,
         grid = view.viewGrid,
         activeView = view.parentWindow && view.parentWindow.activeView,
-        allProperties = activeView.getContextInfo(false, true, false, true) || {},
+        allProperties = this.sourceView.getContextInfo(false, true, false, true) || {},
         selection = grid.getSelectedRecords() || [],
         len = selection.length,
         allRows = grid.data.allRows || grid.data;
