diff --git a/.gitattributes b/.gitattributes
index f564c09a1120063af993145eb83ef2b39eff71f7..592b8b6526bb05d7ac2e616a80424fc2095af8e5 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3498,6 +3498,8 @@ MAC/Navigator2/panels/Processes/MainCU_Processes.pnl -text
 MAC/Navigator2/panels/Processes/ObservationAEmbedded.pnl -text
 MAC/Navigator2/panels/Processes/ObservationAdders.pnl -text
 MAC/Navigator2/panels/Processes/ObservationControl.pnl -text
+MAC/Navigator2/panels/Processes/ObservationGPUProcEmbedded.pnl -text
+MAC/Navigator2/panels/Processes/ObservationGPUProcs.pnl -text
 MAC/Navigator2/panels/Processes/ObservationIBEmbedded.pnl -text
 MAC/Navigator2/panels/Processes/ObservationInputBuffers.pnl -text
 MAC/Navigator2/panels/Processes/ObservationWEmbedded.pnl -text
@@ -3623,6 +3625,8 @@ MAC/Navigator2/panels/objects/Observations/observationFlow.pnl -text
 MAC/Navigator2/panels/objects/Observations/observationProgressBar.pnl -text
 MAC/Navigator2/panels/objects/Observations/observation_smallCEPView.pnl -text
 MAC/Navigator2/panels/objects/Processes/CCUSWLevelView.pnl -text
+MAC/Navigator2/panels/objects/Processes/GPUProcDetail.pnl -text
+MAC/Navigator2/panels/objects/Processes/GPUProcSubbandInfo.pnl -text
 MAC/Navigator2/panels/objects/Processes/MCUSWLevelView.pnl -text
 MAC/Navigator2/panels/objects/Processes/ObsSW_CEP.pnl -text
 MAC/Navigator2/panels/objects/Processes/ObsSW_Main.pnl -text
diff --git a/MAC/Navigator2/panels/Processes/ObservationGPUProcEmbedded.pnl b/MAC/Navigator2/panels/Processes/ObservationGPUProcEmbedded.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..abd68ef8ac9d1e955deefb9bceab8431976111eb
--- /dev/null
+++ b/MAC/Navigator2/panels/Processes/ObservationGPUProcEmbedded.pnl
@@ -0,0 +1,271 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 1200 823 N "_3DFace" 0
+"main()
+{
+   // Initialise the Panel
+  navPanel_initPanel(\"fw_viewBox\");
+  baseDP         = g_currentDatapoint;
+  dpGet(baseDP+\".observationName\",observationNr);
+  observationName=\"Observation\"+observationNr;
+  
+}
+
+//
+// Callback for dpConnect to action point.
+// If there is an action required this point will tell so
+//
+void doAction(string aDP, string anAction) {
+  LOG_DEBUG(\"ObservationGPUProcEmbedded.pnl:doAction| Action required. found: \" + anAction);
+  // split action into essentials
+  dyn_string actionString;
+  if (!navFunct_splitAction(anAction,actionString)) {
+    return;
+  }
+  
+  LOG_DEBUG(\"ObservationGPUProcEmbedded.pnl:doAction|found actionString: \" + actionString);
+  
+  // Reload
+  if (actionString[1] == \"Reload\") {
+    reload();
+  }
+}
+
+void reload() {
+  
+  navFunct_clearGlobalLists();
+ 
+  addGPUProcs();
+}
+
+void addGPUProcs() {
+
+  // get all the InputBuffers used by this observation
+  gpuProcs = navFunct_getGPUProcsForObservation(observationName);  
+
+}
+" 0
+ E E E E 1 -1 -1 0  200 170
+""0  1
+E "#uses \"navPanel.ctl\"
+
+string baseDP=\"\";
+string observationNr;
+string observationName;
+dyn_string gpuProcs;
+" 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+29 0
+"GPUProcModule"
+""
+1 200 224.2340838334161 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+0
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0
+0  0 50 1199 820
+15 Canvas.Canvas.1
+0
+"main(bool enter)
+{
+  this.ModuleName = \"GPUProcModule\"; 
+   
+  RootPanelOnModule(\"Processes/ObservationGPUProcs.pnl\",\"\",\"GPUProcModule\",\"\"); 
+
+}" 0
+2 21
+"TopLabel"
+""
+1 420 0 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 420 0 604 20
+0 2 2 "0s" 0 0 0 192 0 0  420 0 1
+1
+LANG:1 33 MS Shell Dlg,-1,16,5,75,0,0,0,0,0
+0 1
+LANG:1 20 Observation GPUProcs
+2 22
+"PRIMITIVE_TEXT2"
+""
+1 51 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+22 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 51 32 72 45
+0 2 2 "0s" 0 0 0 192 0 0  51 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 3 Obs
+2 23
+"PRIMITIVE_TEXT3"
+""
+1 360.1754385964912 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+23 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E 1.087719298245614 0 1 -31.40350877192984 2 0 E 360 30 477 43
+0 2 2 "0s" 0 0 0 192 0 0  360 30 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 19 subband information
+2 31
+"PRIMITIVE_TEXT4"
+""
+1 95 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+25 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 95 32 166 45
+0 2 2 "0s" 0 0 0 192 0 0  95 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 11 DataProduct
+2 32
+"PRIMITIVE_TEXT5"
+""
+1 182 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+26 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 182 32 233 45
+0 2 2 "0s" 0 0 0 192 0 0  182 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 8 Dropping
+2 33
+"PRIMITIVE_TEXT6"
+""
+1 2 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+27 0 0 0 0 0
+E E E
+0
+1
+LANG:1 6 Status
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 2 32 9 45
+0 2 2 "0s" 0 0 0 192 0 0  2 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 1 S
+2 34
+"PRIMITIVE_TEXT7"
+""
+1 18 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+28 0 0 0 0 0
+E E E
+0
+1
+LANG:1 8 CBT Node
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 18 32 25 45
+0 2 2 "0s" 0 0 0 192 0 0  18 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 1 N
+2 35
+"PRIMITIVE_TEXT8"
+""
+1 30 32 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+29 0 0 0 0 0
+E E E
+0
+1
+LANG:1 11 GPU Proc Nr
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 30 32 38 45
+0 2 2 "0s" 0 0 0 192 0 0  30 32 1
+1
+LANG:1 34 MS Shell Dlg 2,8,-1,5,75,0,0,0,0,0
+0 1
+LANG:1 1 G
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+0
diff --git a/MAC/Navigator2/panels/Processes/ObservationGPUProcs.pnl b/MAC/Navigator2/panels/Processes/ObservationGPUProcs.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..bd7b77bdd92e3ac0f02415290df5715d7f68cfcf
--- /dev/null
+++ b/MAC/Navigator2/panels/Processes/ObservationGPUProcs.pnl
@@ -0,0 +1,260 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 1200 7500 N "_3DFace" 0
+"main()
+{
+  // Initialise the Panel
+  navPanel_initPanel(\"fw_viewBox\");
+  strModuleName   = myModuleName();
+  baseDP = \"LOFAR_PermSW\";
+  database=dpSubStr(baseDP,DPSUB_SYS);
+
+
+  // This panel needs to act on active observations, in running status so we connect to the MACScheduler te be updated  
+  
+  activeObsDP =MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations\";  
+  // check if MACScheduler pointenabled and accessible
+  if (dpExists(activeObsDP)) {
+    if (dpConnect(\"updateActiveObservations\", activeObsDP+\":_online.._value\",
+                                             activeObsDP+\":_online.._invalid\") == -1) {
+      LOG_ERROR(\"ObservationGPUProcs.pnl:main|Couldn't connect to: \"+activeObsDP);
+    }
+  } else {
+    if (!isStandalone()) LOG_ERROR(\"ObservationGPUProcs.pnl:main|Couldn't find DP to connect to: \"+activeObsDP);
+  }
+}
+
+void updateActiveObservations(string dp1, dyn_string obs,
+                              string dp2, bool invalid)
+{
+
+  // remove pipelines from the list
+  for (int i=dynlen(obs);i > 0;  i--) if (!navFunct_isObservation(obs[i])) dynRemove(obs,i);
+  
+  activeObservations = obs;
+  // if there are selected observation check the observationsList if those selected observations still are active
+  // remove the unactive observations from the list  
+  
+  // replace old observations if there are no observations selected
+  if (selectedObservations) {
+    for (int i=dynlen(observationsList); i < 1; i--) {
+      int idx = dynContains(activeObservations,observationsList[i]);
+      if (i <= 0) dynRemove(observationsList,i);
+    }
+    if (dynlen(observationsList) ==0) {
+      selectedObservations=false;
+    }
+  }
+  
+  if (!selectedObservations) {
+    observationsList = activeObservations;
+  }
+  // because CobaltProcesses claim their datapoints when the observation is actually running we need to connect to all these observations
+  // and give a signal when the runstate of one of them changes to running to trigger the Cobalt point collection
+  
+  LOG_DEBUG(\"ObservationGPUProcs.pnl:updateActiveObservations|observationList: \"+observationsList);
+
+  obsConnections = makeDynString();  
+  for (int i = 1; i <= dynlen(observationsList) ; i++) {
+    // compose the WinCC OA DP name 
+    string obsName = \"LOFAR_ObsSW_\"+observationsList[i]; 
+
+    // Ask the claimmanager for the temp obs representation
+    string obsDP=MainDBName+claimManager_nameToRealName(obsName);
+
+    // add DP to list with all connects
+    if (! dynContains(obsConnections,obsDP+\".runState\")) dynAppend(obsConnections,obsDP+\".runState\");
+  }
+  
+  if (dynlen(oldObsConnections) > 0) {
+    // disconnect old observations
+    dpDisconnect(\"monitorRunStates\",oldObsConnections);
+    dynClear(oldObsConnections);
+  }
+  
+  // connect to runState for all active observations  
+  if (dynlen(obsConnections) > 0 && dpConnect(\"monitorRunStates\",obsConnections) == -1) {
+    LOG_ERROR(\"ObservationGPUProcs.pnl:updateActiveObservations|ERROR: couldn't connect to : \"+obsConnections+ \" \" + getLastError());
+  } else if (dynlen(obsConnections) > 0) {
+    oldObsConnections = obsConnections;
+  }     
+}
+
+void monitorRunStates(dyn_string dpList,dyn_string runStates) {
+  for (int i=1; i<= dynlen(runStates); i++) {
+    if (runStates[i] == \"Running\" || runStates[i] == \"Quiting\") {
+      reload();
+      break;
+    }
+  }
+}
+
+void prepareProcesses() {
+  dyn_string result;
+
+  g_processesList = gpuProcs;
+  
+  // write result to the db so various panels can reset themselves  
+  dpSet(DPNAME_NAVIGATOR + g_navigatorID + \".processesList\",result);
+  
+  LOG_DEBUG(\"ObservationGPUProcs.pnl:prepareProcesses|processList found: \"+ g_processesList);      
+}
+
+//
+// Callback for dpConnect to action point.
+// If there is an action required this point will tell so
+//
+void doAction(string aDP, string anAction) {
+  LOG_DEBUG(\"ObservationGPUProcs.pnl:doAction| Action required. found: \" + anAction);
+  // split action into essentials
+  dyn_string actionString;
+  if (!navFunct_splitAction(anAction,actionString)) {
+    return;
+  }
+  
+  LOG_DEBUG(\"ObservationGPUProcs.pnl:doAction|found actionString: \" + actionString);
+  
+  // Reload
+  if (actionString[1] == \"Reload\") {
+    reload();
+  }
+}
+
+void reload() {
+  
+  navFunct_clearGlobalLists();
+ 
+  addGPUProcs();
+ 
+  // set the observation selectable items
+  prepareProcesses();
+
+  redraw();
+
+  // set panel to ready
+  g_objectReady=true;
+  
+  // trigger that the panel values are calculated and ready
+  navPanel_setEvent(\"ObservationGPUProcs.pnl\",\"Update\");
+}
+
+void addGPUProcs() {
+
+  // get all the GPUProcs used for all active observations
+  dynClear(gpuProcs);
+  for (int i =1; i <= dynlen(obsConnections); i++) {
+  
+    string observation = claimManager_realNameToName(obsConnections[i]);
+    
+    dyn_string ib = navFunct_getGPUProcsForObservation(navFunct_observationNameToNumber(observation));  
+  
+    dynAppend(gpuProcs,ib);
+  }
+  dynSort(gpuProcs);
+}
+
+" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+
+string baseDP=\"\";
+dyn_string observationsList;
+dyn_string obsConnections;   
+dyn_string oldObsConnections;   // keep copy latest observations to be disconnected when the list changes
+dyn_string activeObservations;
+
+string activeObsDP = \"\";
+string database;
+bool selectedObservations=false;
+
+dyn_string gpuProcs;
+bool connected = false;
+dyn_string GPURefNames;
+string strModuleName;
+
+
+void clearGPURefNames() {
+  // remove all symbols because new ones will be added
+  for (int i=1; i <= dynlen(GPURefNames); i++) {
+    removeSymbol(strModuleName,\"\",GPURefNames[i]);
+  }
+  dynClear(GPURefNames);
+}
+
+void redraw() {
+  string barColor = \"_3DFace\";
+  if (dynlen(GPURefNames) > 0) {
+    clearGPURefNames();
+  }    
+  int xPos_AddSymbol = 0; 
+  int yPos_AddSymbol = 0; 
+  int ref = 1;
+  string addPanelName    = \"objects/Processes/GPUProcDetail.pnl\";
+  //loop over list and prepare panel with all gpuProc objects   
+  for (int i=1; i<= dynlen(gpuProcs); i++) {
+    if ((float)i/2. != floor(i/2.)) {
+      barColor = \"lightgrey\";
+    } else {
+      barColor = \"_3DFace\";
+    }
+    GPURefNames[ref]=\"GPU\"+(ref);
+      
+    if (  addSymbol(  strModuleName,                   // Stay in this modul
+                      \"\",                              // Name of this panel
+                      addPanelName,                    // Panel to add
+                      GPURefNames[ref],               // Ref of the addedPanel
+                      makeDynString( \"$gpuProc:\" + gpuProcs[i],
+                                     \"$yPos_AddSymbol:\" + yPos_AddSymbol,
+                                     \"$barColor:\"    + barColor) ,     // Define all $values
+                      xPos_AddSymbol,                  // Xpos of the AddedSymbol
+                      yPos_AddSymbol,                  // Ypos of the AddedSymbol
+                      0,                               // angle
+                      1    ,1                          // zoomX , zoomY
+        ) < 0 ) {
+	  LOG_ERROR(\"ObservationGPUProcs.pnl:redraw|Error Appending inputBuffer for: \" + gpuProcs[i] + \" in this panel.\");
+          }
+    yPos_AddSymbol += 14;
+    ref++;
+  }
+
+}" 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+0
diff --git a/MAC/Navigator2/panels/Processes/ObservationInputBuffers.pnl b/MAC/Navigator2/panels/Processes/ObservationInputBuffers.pnl
index d12d0f54a4ceb3b614c66a3cac34e6e4e984e7bb..48334101b74c6b9598a65ebd2e3ab53e7c06b5b9 100644
--- a/MAC/Navigator2/panels/Processes/ObservationInputBuffers.pnl
+++ b/MAC/Navigator2/panels/Processes/ObservationInputBuffers.pnl
@@ -93,115 +93,6 @@ void monitorRunStates(dyn_string dpList,dyn_string runStates) {
 
 
 
-// connect to stationInputStreams from the active observations
-void connectStationInputStreams(string runState) {
-  stationInputs = \"\";
-  string obsDP=\"\";
-  dyn_string stream0DPList;
-  dyn_string stream1DPList;
-  dyn_string stream2DPList;
-  dyn_string stream3DPList;
-
-  // change all found DP's to contain all the elements that contain the stream.percBad
-  if (connected0) {
-    dpDisconnect(\"streamCB0\",connectTo0);
-    dynClear(connectTo0);
-    connected0 = false;
-  }
-  if (connected1) {
-    dpDisconnect(\"streamCB1\",connectTo1);
-    dynClear(connectTo1);
-    connected1 = false;
-  }
-  if (connected2) {
-    dpDisconnect(\"streamCB2\",connectTo2);
-    dynClear(connectTo2);
-    connected2 = false;
-  }
-  if (connected3) {
-    dpDisconnect(\"streamCB3\",connectTo3);
-    dynClear(connectTo3);
-    connected3 = false;
-  }
-
-  if (dynlen(observationsList) == 1 && runState == \"Quiting\") {
-    setValue(\"streamObject0\", \"foreCol\", \"Lofar_off\");
-    setValue(\"streamObject1\", \"foreCol\", \"Lofar_off\");
-    setValue(\"streamObject2\", \"foreCol\", \"Lofar_off\");
-    setValue(\"streamObject3\", \"foreCol\", \"Lofar_off\");
-    return;
-  }
-
-
-  //collect all active observations and their stationInputStreams
-  if (dynlen(observationsList) > 0) {
-    // prepare connectList
-    for(int i=1; i <= dynlen(observationsList); i++) {
-      dynClear(stream0DPList);
-      dynClear(stream1DPList);
-      dynClear(stream2DPList);
-      dynClear(stream3DPList);
-      // For all observations collect the PermSW streamInfo
-      stationInputs = navFunct_getStationInputForObservation(observationsList[i]);
-  
-
-      for (int i=1; i<= dynlen(stationInputs); i++) {
-        if (! dynContains(connectTo0,stationInputs[i]+\".stream0:_online.._value\")) dynAppend(connectTo0,stationInputs[i]+\".stream0.rejected:_online.._value\");
-        if (! dynContains(connectTo1,stationInputs[i]+\".stream1:_online.._value\")) dynAppend(connectTo1,stationInputs[i]+\".stream1.rejected:_online.._value\");
-        if (! dynContains(connectTo2,stationInputs[i]+\".stream2:_online.._value\")) dynAppend(connectTo2,stationInputs[i]+\".stream2.rejected:_online.._value\");
-        if (! dynContains(connectTo3,stationInputs[i]+\".stream3:_online.._value\")) dynAppend(connectTo3,stationInputs[i]+\".stream3.rejected:_online.._value\");
-      }
-      if (dynlen(stationInputs) > 0) baseDP = stationInputs[1];
-    }
-      
-  
-    // check if the required datapoint for this view are enabled and accessible
-    if (dynlen(connectTo0)>0 && navFunct_dpReachable(CEPDBName)  ){
-      if (dpConnect(\"streamCB0\", connectTo0) == -1) {
-        setValue(\"streamObject0\", \"foreCol\", \"Lofar_dpdoesnotexist\");
-      } else {
-        connected0 = true;
-      }
-    } else {
-      
-      setValue(\"streamObject0\", \"foreCol\", \"Lofar_off\");
-    }
-    if (dynlen(connectTo1)>0 && navFunct_dpReachable(CEPDBName) ){
-      if (dpConnect(\"streamCB1\", connectTo1) == -1) {
-        setValue(\"streamObject1\", \"foreCol\", \"Lofar_dpdoesnotexist\");
-      } else {
-        connected1 = true;
-      }
-    } else {
-      setValue(\"streamObject1\", \"foreCol\", \"Lofar_off\");
-    }
-    if (dynlen(connectTo2)>0 &&  navFunct_dpReachable(CEPDBName) ){
-      if (dpConnect(\"streamCB2\", connectTo2) == -1) {
-        setValue(\"streamObject2\", \"foreCol\", \"Lofar_dpdoesnotexist\");
-      } else {
-        connected2 = true;
-      }
-    } else {
-      setValue(\"streamObject2\", \"foreCol\", \"Lofar_off\");
-    }
-    if (dynlen(connectTo3)>0 && navFunct_dpReachable(CEPDBName)){
-      if (dpConnect(\"streamCB3\", connectTo3) == -1) {
-        setValue(\"streamObject3\", \"foreCol\", \"Lofar_dpdoesnotexist\");
-      } else {
-        connected3 = true;
-      }
-    } else {
-      setValue(\"streamObject3\", \"foreCol\", \"Lofar_off\");
-    }
-  } else {
-      setValue(\"streamObject0\", \"foreCol\", \"Lofar_off\");    
-      setValue(\"streamObject1\", \"foreCol\", \"Lofar_off\");    
-      setValue(\"streamObject2\", \"foreCol\", \"Lofar_off\");    
-      setValue(\"streamObject3\", \"foreCol\", \"Lofar_off\");    
-  }
-}
-
-
 void prepareProcesses() {
   dyn_string result;
   string connectTo=\"LOFAR_PermSW\";
@@ -211,6 +102,7 @@ void prepareProcesses() {
     dyn_string splitted = strsplit(inputBuffers[i],\"_\");
     dynAppend(result,\"LOFAR_PermSW,\"+splitted[3]+\",\"+connectTo+\"_\"+splitted[3]);
     dynAppend(result,connectTo+\"_\"+splitted[3]+\",CobaltStationInput,\"+connectTo+\"_\"+splitted[3]+\"_CobaltStationInput\");
+    dynAppend(g_processesList,inputBuffers[i]);
   }  
   
   // write result to the db so various panels can reset themselves  
@@ -286,7 +178,6 @@ string activeObsDP = \"\";
 string database;
 bool selectedObservations=false;
 
-dyn_string inputBuffers;
 bool connected = false;
 dyn_string IBRefNames;
 string strModuleName;
diff --git a/MAC/Navigator2/panels/main.pnl b/MAC/Navigator2/panels/main.pnl
index ec6a360b188f69833db9f293ce62a99021e42d7b..e4b5f0f5554ee4e67cebd95f1781de1bcd43ac75 100644
--- a/MAC/Navigator2/panels/main.pnl
+++ b/MAC/Navigator2/panels/main.pnl
@@ -162,7 +162,7 @@ void addBackLines() {
           }
     yPos_AddSymbol += 12;
     ref++;
-    addProcesses(stationList[i]+\":\");
+//    addProcesses(stationList[i]+\":\");
   }
   dpSet(DPNAME_NAVIGATOR + g_navigatorID + \".processesList\",station_result);
 }
@@ -779,13 +779,17 @@ LANG:1 5 AardF
 0
 1 182 4 "" 3
 0
-1 183 5 "" 0
+1 183 4 "" 4
 0
-1 184 6 "" 1
+1 184 5 "" 0
 0
-1 185 6 "" 2
+1 185 5 "" 1
 0
-1 186 7 "" 0
+1 186 6 "" 1
+0
+1 187 6 "" 2
+0
+1 188 7 "" 0
 0
 0
 LAYER, 1 
diff --git a/MAC/Navigator2/panels/objects/Processes/GPUProcDetail.pnl b/MAC/Navigator2/panels/objects/Processes/GPUProcDetail.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..54c6f6b3ee27535220834de992bf1afa60c4e3ca
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Processes/GPUProcDetail.pnl
@@ -0,0 +1,335 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 1028 66 N "_3DFace" 3
+"$barColor"
+"$gpuProc"
+"$yPos_AddSymbol"
+"main()
+{
+
+  barColor = $barColor;
+  strModuleName   = myModuleName();  
+  setValue(\"bar\",\"backCol\",barColor);
+  
+  baseDP   = g_currentDatapoint;
+  GPUProcDP  = $gpuProc;
+    
+  // connect to the gpuProcvalues  
+  // check if the requiered datapoint for this view are enabled and accessible
+  if (dpExists(GPUProcDP + \".status.state\")) {
+     if (!dpConnect(\"updateGPUProc\", GPUProcDP + \".observationName\",
+	                                    GPUProcDP + \".dataProductType\",
+	                                    GPUProcDP + \".subband\",
+	                                    GPUProcDP + \".dropping\",
+	                                    GPUProcDP + \".written\", 
+	                                    GPUProcDP + \".dropped\",
+                                     GPUProcDP + \".status.state:_online.._invalid\") == -1) {
+      LOG_ERROR(\"GPUProcDetail.pnl:updateTrigger|Couldn't connect to: \"+GPUProcDP+\" \"+getLastError());
+    }
+  } else {
+    LOG_ERROR(\"GPUProcDetail.pnl:updateTrigger|Couldn't find DP to connect to: \"+GPUProcDP);
+    setValue(\"observationName\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    setValue(\"dataProductType\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    setValue(\"subband\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    setValue(\"dropping\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    setValue(\"written\", \"backCol\", \"Lofar_dpdoesnotexist\");
+    setValue(\"dropped\", \"backCol\", \"Lofar_dpdoesnotexist\");
+  }    
+    
+  // pass baseDP to selfstate Object to work with
+  setValue(\"selfState.light\",\"toolTipText\",GPUProcDP);
+ 
+  // connect for selfUpdates
+  showSelfState(GPUProcDP);
+}
+
+
+updateGPUProc(string dp1, string observationName, 
+              string dp2, string dataProductType,
+              string dp3, dyn_int subband,
+              string dp4, dyn_bool dropping,
+              string dp5, dyn_float written,
+              string dp6, dyn_float dropped,
+              string dp7, bool invalid)
+{ 
+
+  LOG_DEBUG(\"GPUProcDetail.pnl:update|entered\"); 
+  
+  observation=observationName;
+  string dp = dpSubStr(dp1,DPSUB_DP);
+  string color = \"Lofar_operational\";  
+  // get Node and gpu numbers out of the datapoint
+  int cbt = (substr(dp1,strpos(dp1,\"OSCBT\")+5,3));
+  int gpu = (substr(dp1,strpos(dp1,\"CobaltGPUProc\")+13,2));
+  CBTstr.text = cbt;
+  GPUstr.text = gpu;
+
+  if (!invalid) {
+    setValue(\"observationName\", \"text\", observationName);
+    setValue(\"dataProductType\", \"text\", dataProductType);
+    if (dynContains(dropping,\"True\") ) color = \"Lofar_broken\";
+    setValue(\"dropping\", \"backCol\",color);
+      
+  } else {
+    setValue(\"observationName\", \"text\", \"\");
+    setValue(\"dataProductType\", \"text\", \"\");
+    setValue(\"written\", \"text\", \"\");
+    setValue(\"dropped\", \"text\", \"\");
+    setValue(\"dropping\", \"backCol\",\"Lofar_invalid\");
+  }
+  
+  addSubbands(subband, written, dropped, invalid);
+  
+}
+" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "#uses \"navPanel.ctl\"
+
+string GPUProc=\"\";
+string database=\"\";
+string observation=\"\";
+
+string baseDP = \"\";
+string GPUProcDP=\"\";
+string barColor=\"\";
+
+bool   bDoubleClicked  = false;
+
+dyn_string oldSubbandRefNames;
+string strModuleName;
+
+
+void clearOldSubbandRefNames() {
+  // remove all symbols because new ones will be added
+  for (int i=1; i <= dynlen(oldSubbandRefNames); i++) {
+    removeSymbol(strModuleName,\"\",oldSubbandRefNames[i]);
+  }
+  dynClear(oldSubbandRefNames);
+}
+
+// routine for single mouse click
+void click(string dp) {
+  // set delay in case double click was meant
+  delay(0, 100); 
+  if (!bDoubleClicked) {
+    if (dp == stationDP) {
+      navPanel_setEvent(\"GPUProc\",\"EventClick\");
+    }
+  }
+}
+
+// routine for double mouse click
+void dblClick(string dp) {
+  // indicate this is a doubleClick
+  bDoubleClicked = true; 
+
+  if (dpExists(dp) ) {
+    LOG_DEBUG(\"GPUProcDetail.pnl:DoubleClick|Setting currentDatapoint from : \"+g_currentDatapoint+\" to \"+dp);
+    g_currentDatapoint=dp;
+    navPanel_setEvent(\"GPUProcDetail.pnl\",\"ChangePanel\");  
+  }
+  // set delay to avoid click event will be triggered
+  delay(0, 500);
+  bDoubleClicked = false;
+}
+
+// routine for right mouse click
+void rClick(string dp) {
+  navPanel_setEvent(\"GPUProcDetail.pnl\",\"EventRightClick\");
+}
+
+// add subbandinformation
+void addSubbands(dyn_int subbands, dyn_float written, dyn_float dropped, bool invalid) {
+  LOG_DEBUG(\"GPUProcDetail.pnl:addSubbands\");
+  
+  dyn_string subbandRefNames;
+   if (dynlen(oldSubbandRefNames) > 0) {
+    clearOldSubbandRefNames();
+  }    
+  int xPos_AddSymbol = 220; 
+  int ref = 1;
+  string addPanelName    = \"objects/Processes/GPUProcSubbandInfo.pnl\";
+  //loop over list and prepare panel with all subband objects   
+  for (int i=1; i<= dynlen(subbands); i++) {
+    subbandRefNames[ref]=\"subband\"+(subbands[i]);
+    
+    // sometimes it is possible that the trigger for this function is faster then
+    // cobalt has written all the buffers, so we will get an index out of range
+    // to avoid this we will set the value at the index to 0
+  
+    if (dynlen(written) < i) dynAppend(written,0);
+    if (dynlen(dropped) < i) dynAppend(dropped,0);
+    
+    if (  addSymbol(  strModuleName,                   // Stay in this modul
+                      \"\",                              // Name of this panel
+                      addPanelName,                    // Panel to add
+                      subbandRefNames[ref],            // Ref of the addedPanel
+                      makeDynString( \"$subband:\" + subbands[i],
+                                     \"$dropped:\" + dropped[i],
+                                     \"$written:\" + written[i],
+                                     \"$observation:\" + observation,
+                                     \"$invalid:\" + invalid),   // Define all $values
+                      xPos_AddSymbol,                  // Xpos of the AddedSymbol
+                      $yPos_AddSymbol,                 // Ypos of the AddedSymbol
+                      0,                               // angle
+                      1    ,1                          // zoomX , zoomY
+        ) < 0 ) {
+	  LOG_ERROR(\"GPUProcDetail.pnl:addSubbandsError Appending symbol for: \" + subbands[i] + \" in this panel.\");
+          }
+    xPos_AddSymbol += 14;
+    ref++;
+  }
+  oldSubbandRefNames = subbandRefNames;
+ 
+  
+} 
+" 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+6 16
+"bar"
+""
+1 0 0 E E E 1 E 1 E N {0,0,0} E N "_3DFace" E E
+ E E
+15 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 0 3 214 17
+1 25 0 "" 1
+0
+6 18
+"dropping"
+""
+1 90 30 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+16 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E 1 0 1 110 -25 1 E 90 30 100 40
+2 20
+"observationName"
+""
+1 50 4 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+17 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 50 4 67 17
+0 2 2 "0s" 0 0 0 192 0 0  50 4 1
+1
+LANG:1 37 MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0
+0 1
+LANG:1 3 obs
+2 22
+"CBTstr"
+""
+1 20 4 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+18 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 20 4 26 17
+0 2 2 "0s" 0 0 0 192 0 0  20 4 1
+1
+LANG:1 37 MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0
+0 1
+LANG:1 1 1
+2 23
+"GPUstr"
+""
+1 30 4 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+19 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 30 4 36 17
+0 2 2 "0s" 0 0 0 192 0 0  30 4 1
+1
+LANG:1 37 MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0
+0 1
+LANG:1 1 0
+2 24
+"dataProductType"
+""
+1 102 4 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+ E E
+20 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  0 E 102 4 162 17
+0 2 2 "0s" 0 0 0 192 0 0  102 4 1
+1
+LANG:1 37 MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0
+0 1
+LANG:1 10 beamformed
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+3 0 "selfState" -1
+"objects\\lofar_self_state.pnl" 7 18 T 15 0.7142857142857143 0 0.7142857142857143 -4 -9.857142857142858
+0
+0
diff --git a/MAC/Navigator2/panels/objects/Processes/GPUProcSubbandInfo.pnl b/MAC/Navigator2/panels/objects/Processes/GPUProcSubbandInfo.pnl
new file mode 100644
index 0000000000000000000000000000000000000000..e95a33c77d5fc007c94fe9a365e929e06be2f6dd
--- /dev/null
+++ b/MAC/Navigator2/panels/objects/Processes/GPUProcSubbandInfo.pnl
@@ -0,0 +1,84 @@
+V 11
+1
+LANG:1 0 
+PANEL,-1 -1 114 79 N "_3DFace" 5
+"$dropped"
+"$invalid"
+"$observation"
+"$subband"
+"$written"
+"main()
+{
+                 
+  if ($invalid) {
+    subbandInfo.backCol(\"Lofar_invalid\");
+    subbandInfo.toolTipText = \"\";
+  } else {
+    if ($dropped > 0) {
+      subbandInfo.backCol(\"Lofar_broken\");
+    } else if ($written > 0) {
+      subbandInfo.backCol(\"Lofar_operational\");
+    }
+    tooltip = \"Observation: \" + $observation + \"\\n\" +
+              \"Subband: \" + $subband + \"\\n\" +
+              \"Written: \" + $written + \"\\n\" +
+              \"Dropped: \" + $dropped; 
+    subbandInfo.toolTipText(tooltip);  
+  }
+}" 0
+ E E E E 1 -1 -1 0  0 0
+""0  1
+E "string tooltip = \"\";
+  " 0
+ 2
+"CBRef" "1"
+"EClose" E
+""
+DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
+LAYER, 0 
+1
+LANG:1 0 
+6 0
+"subbandInfo"
+""
+1 270 20 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
+ E E
+0 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E 1 0 1 -270 -17 1 E 270 20 284 34
+0
+LAYER, 1 
+1
+LANG:1 0 
+0
+LAYER, 2 
+1
+LANG:1 0 
+0
+LAYER, 3 
+1
+LANG:1 0 
+0
+LAYER, 4 
+1
+LANG:1 0 
+0
+LAYER, 5 
+1
+LANG:1 0 
+0
+LAYER, 6 
+1
+LANG:1 0 
+0
+LAYER, 7 
+1
+LANG:1 0 
+0
+0
diff --git a/MAC/Navigator2/panels/objects/Processes/inputBuffer.pnl b/MAC/Navigator2/panels/objects/Processes/inputBuffer.pnl
index 3f3d9f5b1cf4ebe796fc0ed870c56e0fc0fab6a7..1cb1726a7bb0cdb4fa0198995da3222eb8decfcf 100644
--- a/MAC/Navigator2/panels/objects/Processes/inputBuffer.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/inputBuffer.pnl
@@ -13,7 +13,6 @@ PANEL,-1 -1 1010 66 N "_3DFace" 2
   
   baseDP         = g_currentDatapoint;
   inputBufferDP  = $inputBuffer;
-  DebugN(inputBufferDP);
 
   stationName = strsplit(inputBufferDP,\"_\")[3];
   // connect to the inputBuffer values  
@@ -143,6 +142,7 @@ updateBuffer(string dp1, string observationName,
 }
 
 string getColor(int val, string color) {
+  if (val == 0) color = \"Lofar_operational\";
   if (val > 0 && val < 10) {
     color = \"Lofar_test\";
   } else if (val >= 10 && val < 25) {
@@ -432,7 +432,7 @@ E E 0 1 1 2 1 E U  0 E 789 4 825 17
 LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0
 0 1
 LANG:1 6 000000
-1 14 0 "" 1
+1 19 0 "" 1
 0
 2 13
 "observationName"
diff --git a/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltGPUProcs.pnl b/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltGPUProcs.pnl
index dec84116f16039500995305dda9f0325f9aa8c4f..af27d587e6ea96f76b734e969e5c418a32f9fac4 100644
--- a/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltGPUProcs.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltGPUProcs.pnl
@@ -1,7 +1,7 @@
 V 11
 1
 LANG:1 0 
-PANEL,-1 -1 305 78 N "_3DFace" 0
+PANEL,-1 -1 177 78 N "_3DFace" 0
 "main()
 {
   baseDP = \"LOFAR_PermSW\";
@@ -20,7 +20,19 @@ PANEL,-1 -1 305 78 N "_3DFace" 0
   
   	
 }" 0
- E E E E 1 -1 -1 0  0 0
+ E "main(int x, int y)
+{
+  click();
+}" 0
+ "main()
+{
+  rClick();
+}" 0
+ "main(int x, int y)
+{
+  dblClick();
+}" 0
+ 1 -1 -1 0  0 0
 ""0  1
 E "#uses \"navPanel.ctl\"
 
@@ -36,6 +48,39 @@ bool connectedGPUProcs;
 
 bool selectedObservations=false;
 
+bool bDoubleClicked  = false;
+
+// routine for single mouse click
+void click() {
+  // set delay in case double click was meant
+  delay(0, 100); 
+  if (!bDoubleClicked && dynlen(gpuprocs) > 0) {
+      navPanel_setEvent(\"observationFlow_cobaltGPUProcs.pnl\",\"EventClick\");
+  }
+}
+
+// routine for double mouse click
+void dblClick() {
+  // indicate this is a doubleClick
+  bDoubleClicked = true; 
+  if (dynlen(gpuprocs) > 0) {
+  
+    LOG_DEBUG(\"observationFlow_cobaltGPUProcs.pnl:DoubleClick|Setting currentDatapoint from : \"+g_currentDatapoint+\" to \" + baseDP);
+    g_currentDatapoint=baseDP;
+    //we also have to set the tabctrl to think this was initiated from the ProcessesTab, otherwise we will get the wrong panel.
+    navPanel_setEvent(\"Processes\",\"ChangeTab\");
+  }
+  // set delay to avoid click event will be triggered
+  delay(0, 500);
+  bDoubleClicked = false;
+}
+
+// routine for right mouse click
+void rClick() {
+  if (dynlen(gpuprocs) > 0) {
+    navPanel_setEvent(\"observationFlow_cobaltGPUProcs.pnl\",\"EventRightClick\");
+  }
+}
 
 void updateActiveObservations(string dp1, dyn_string obs,
                               string dp2, bool invalid)
@@ -221,7 +266,15 @@ LANG:1 0
 "GPUProcsObject"
 ""
 1 20 30 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E
- E E
+ "main()
+{
+  rClick();
+}" 0
+ "main(int x, int y)
+{
+  dblClick();
+}" 0
+
 0 0 0 0 0 0
 E E E
 0
@@ -230,7 +283,37 @@ LANG:1 69 All GPUProcs involved in the  currently(selected) active observations
 
 1
 "dashclr"N "_Transparent"
-E E 0 4 1 2 1 E  20 30 50 30
+E "main(int x, int y)
+{
+  click();
+}" 0
+ 0 4 1 2 1 E  20 30 50 30
+6 1
+"RECTANGLE1"
+""
+1 10 10 E E E 1 E 1 E N "_Transparent" E N "_Transparent" E E
+ "main()
+{
+  rClick();
+}" 0
+ "main(int x, int y)
+{
+  dblClick();
+}" 0
+
+1 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main(int x, int y)
+{
+  click();
+}" 0
+ 0 1 1 2 1 E 1 0 1 10 5 0 E 10 10 40 40
 0
 LAYER, 1 
 1
diff --git a/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltInputStreams.pnl b/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltInputStreams.pnl
index 760e0d4db0932dc2fe739b68818b38696509f16c..0dc5b23ca9a0cb509265b07aa660b5aa8406fc54 100644
--- a/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltInputStreams.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/observationFlow_cobaltInputStreams.pnl
@@ -483,6 +483,32 @@ E "main()
   click();
 }" 0
  0 4 1 2 1 E  10 30 40 30
+6 4
+"RECTANGLE1"
+""
+1 10 10 E E E 1 E 1 E N "_Transparent" E N "_Transparent" E E
+ "main()
+{
+  rClick();
+}" 0
+ "main()
+{
+  dblClick();
+}" 0
+
+4 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E "main()
+{
+  click();
+}" 0
+ 0 1 1 2 1 E U  0 E 10 10 40 40
 0
 LAYER, 1 
 1
diff --git a/MAC/Navigator2/scripts/libs/navFunct.ctl b/MAC/Navigator2/scripts/libs/navFunct.ctl
index d48d586307c9d14043de5222f35c675ad19a8053..490c94445b37aab6587595587afc8bb4a580e789 100644
--- a/MAC/Navigator2/scripts/libs/navFunct.ctl
+++ b/MAC/Navigator2/scripts/libs/navFunct.ctl
@@ -760,12 +760,12 @@ dyn_string navFunct_dpGetFullPathAsTypes(string aDp){
       
   
   dyn_string splitted = strsplit(dp,"_");
-
   string start;  
   for (int i=1; i <= dynlen(splitted); i++)  {
     start+=splitted[i];
     typePath[i+index] = dpTypeName(systemName+start);
     start+="_";
+    
   }
   
   return typePath;
@@ -1256,6 +1256,8 @@ void navFunct_fillObservationsList() {
     
     // check all available observations
     for (int i = 1; i <= dynlen(g_observations["NAME"]); i++) {
+      // only observations!!
+      if (g_observations["STATIONLIST"][i] == "[]") continue;
       bool found=false;
       string shortObs=g_observations["NAME"][i];
       strreplace(shortObs,"LOFAR_ObsSW_","");
@@ -1715,6 +1717,11 @@ void navFunct_fillProcessesTree() {
     string fullProcessPath=connectTo;
     for (int j=1; j <= dynlen(pathList); j++) {
       fullProcessPath+="_"+pathList[j];
+      if (strpos(pathList[j],"TempObs") > -1) {
+        // Observation found, get real name in stead of Tempname
+        string observation = strsplit(claimManager_realNameToName("LOFAR_ObsSW_"+pathList[j]),"_")[3];
+        pathList[j] = observation;
+      }
       if (!dynContains(result,connectTo+","+pathList[j]+","+fullProcessPath)) {
        dynAppend(result,connectTo+","+pathList[j]+","+fullProcessPath);
       }
@@ -1722,7 +1729,7 @@ void navFunct_fillProcessesTree() {
     }
   }
   
-  LOG_DEBUG("navFunct.ctl:navFunct_fillProcessesTree|result: "+ result);  
+  LOG_DEBUG("navFunct.ctl:navFunct_fillProcessesTree|result: "+ result); 
   dpSet(DPNAME_NAVIGATOR + g_navigatorID + ".processesList",result);  
 }