diff --git a/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl b/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl
index 6b133fc226359d9a71c456e4bbad2693e0c9b1f3..8835eb5411a948d60c6e180c2c01e32a7eff00f6 100644
--- a/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl
+++ b/MAC/Navigator2/panels/objects/Hardware/RSPBoard_AP.pnl
@@ -1,4 +1,4 @@
-V 10
+V 11
 1
 LANG:1 10 Subrack_AP
 PANEL,-1 -1 184 193 N "_3DFace" 1
@@ -49,9 +49,9 @@ E "#uses \"navPanel.ctl\"
 
 string baseDP=\"\";
 
-FPGASyncDetails(string dp1, int sampleCount,
-                string dp2, int syncCount,
-                string dp3, int errorCount)
+FPGASyncDetails(string dp1, uint sampleCount,
+                string dp2, uint syncCount,
+                string dp3, uint errorCount)
 {
   setValue(\"output_errorCount\" , \"text\", errorCount);
   setValue(\"output_sampleCount\", \"text\", sampleCount);
@@ -106,12 +106,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 0 1 E U  0 E 27 33 45 50
+E E 0 1 1 0 1 E U  0 E 27 33 45 49
 0 2 0 "0s" 0 0 0 192 0 0  27 33 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0
+0 1
 LANG:1 2 AP
 2 6
 "txt_version"
@@ -126,12 +125,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 0 1 E U  0 E 121 166 158 181
+E E 0 1 1 0 1 E U  0 E 121 166 158 180
 0 2 0 "0s" 0 0 0 194 0 0  158 166 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0
+0 1
 LANG:1 8 ver: x.x
 2 8
 "label_sampleCount"
@@ -149,9 +147,8 @@ LANG:1 0
 E E 0 1 1 0 1 E U  0 E 22 97 72 116
 0 2 0 "0s" 0 0 0 66 0 0  22 97 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0
+0 1
 LANG:1 7 Sample:
 2 9
 "label_syncCount"
@@ -169,9 +166,8 @@ LANG:1 0
 E E 0 1 1 0 1 E U  0 E 39 120 72 136
 0 2 0 "0s" 0 0 0 66 0 0  39 120 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0
+0 1
 LANG:1 5 Sync:
 2 7
 "label_errorCount"
@@ -189,9 +185,8 @@ LANG:1 0
 E E 0 1 1 0 1 E U  0 E 39 143 72 159
 0 2 0 "0s" 0 0 0 66 0 0  39 143 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-12-*-100-100-*-*-iso8859-1|-12,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,12,5,40,0,0,0,0,0
+0 1
 LANG:1 6 Error:
 2 18
 "txt_temperature"
@@ -206,12 +201,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 0 1 E U  0 E 126 32 133 49
+E E 0 1 1 0 1 E U  0 E 126 32 133 48
 0 2 0 "3.0f" 4 0 0 194 0 0  133 32 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0
+0 1
 LANG:1 1 x
 2 4
 "label_temperature"
@@ -226,12 +220,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 0 1 E U  0 E 134 32 148 49
+E E 0 1 1 0 1 E U  0 E 134 32 148 48
 0 2 0 "0s" 0 0 0 194 0 0  148 32 1
 1
-LANG:1 84 -*-Arial-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
-1
+LANG:1 26 Arial,-1,13,5,40,0,0,0,0,0
+0 1
 LANG:1 2 �C
 1 19 0 "" 1
 0
@@ -248,9 +241,8 @@ LANG:1 0
 
 0
 1
-LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
- 78 139 152 164
+LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0
+0  78 139 152 164
 3 "0s" 0 0 0 2 0 -1  E E E
 14 13
 "output_sampleCount"
@@ -265,9 +257,8 @@ LANG:1 0
 
 0
 1
-LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
- 78 90 152 115
+LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0
+0  78 90 152 115
 3 "0s" 0 0 0 2 0 -1  E E E
 14 14
 "output_syncCount"
@@ -282,9 +273,8 @@ LANG:1 0
 
 0
 1
-LANG:1 84 -*-Arial-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,404,0,0,0,0,0,0,0,0,Arial
-0 ""
- 78 114 152 139
+LANG:1 26 Arial,-1,11,5,40,0,0,0,0,0
+0  78 114 152 139
 3 "0s" 0 0 0 2 0 -1  E E E
 0
 LAYER, 1 
@@ -315,7 +305,7 @@ LAYER, 7
 1
 LANG:1 6 Layer8
 0
-3 0 "selfState"
+3 0 "selfState" -1
 "objects\\lofar_self_state.pnl" 25 171 T 17 1 0 1 -2 -15
 0
-0
\ No newline at end of file
+0
diff --git a/MAC/Navigator2/scripts/setSumAlerts.ctl b/MAC/Navigator2/scripts/setSumAlerts.ctl
index 71fbb9d3439d1a53dab7ccf23cf798b9adf4d024..844e90f4441e7872278adcf7259fae5bfb1212c3 100644
--- a/MAC/Navigator2/scripts/setSumAlerts.ctl
+++ b/MAC/Navigator2/scripts/setSumAlerts.ctl
@@ -45,10 +45,12 @@ private void setSumAlerts( string strDPE, bool bRunDone )
   // Get all DPE's with a 'childSumAlert'
   dsParentDPEs = dpNames( "*.**.childSumAlert" );
 
+  dynSort(dsParentDPEs);
+  
   // Go through sumalerts
   for( x=1; x<=dynlen(dsParentDPEs); x++ )
   {
-    bool bRetVal1, bRetVal2;
+    bool bRetVal1, bRetVal2, bLeaf;
     int iRetVal, iAlertHdlType;
     string strDPE;
     dyn_string dsChilds, dsChildDPEs;
@@ -57,8 +59,8 @@ private void setSumAlerts( string strDPE, bool bRunDone )
     strDPE = dpSubStr( dsParentDPEs[x], DPSUB_DP_EL );
     strDPE = RemoveLastDpeParts(strDPE);
     
-    // Skip master datapoints
-    if( patternMatch( "*_mp*", strDPE ) )
+    // Skip master datapoints and leaf=True points
+    if( patternMatch( "*_mp*", strDPE ))
     {
       continue;
     }
@@ -68,58 +70,74 @@ private void setSumAlerts( string strDPE, bool bRunDone )
       continue;
     }
 
+    dpGet(strDPE+".status.leaf",bLeaf);
+    if (bLeaf)
+    {
+      continue;
+    }
+    
+
+    if (bDebug) 
+    {
+      DebugTN("Working on: " + strDPE);
+    }
+
     // Get childs of this DPE
     dsChilds = GetChilds( strDPE );
     
+    
     // For each child: get DPE's to add to sumalerts and append to list
     for( y=1; y<=dynlen(dsChilds); y++ )
     {
       dynAppend( dsChildDPEs, GetChildDPEs( dsChilds[y] ) );
     }
 
+    
     // Check if this DPE has an alert_hdl of type sumalert
     dpGet( dsParentDPEs[x] + ":_alert_hdl.._type", iAlertHdlType );
     
-    if( iAlertHdlType == DPCONFIG_SUM_ALERT )
+    if( iAlertHdlType == DPCONFIG_SUM_ALERT)
     {
-      // First deactivate the alert
-      dpDeactivateAlert( dsParentDPEs[x], bRetVal1 );
-      if( !bRetVal1 )
-      {
-        DebugTN( "setSumAlerts(): FAILED TO dpDeactivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" );
-      }
-      
-      // No change the sumalert dplist
-      iRetVal = dpSet( dsParentDPEs[x] + ":_alert_hdl.._dp_list",    dsChildDPEs,
-                       dsParentDPEs[x] + ":_alert_hdl.._dp_pattern", "" );
-      
-      dyn_errClass derrLastError = getLastError();
-      if( dynlen(derrLastError) > 0 )
-      {
-        DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, getLastError():", derrLastError );
-      }
-      else if( iRetVal != 0 )
-      {
-        DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, iRetVal = " + iRetVal );
-      }
-      
-      // Activate alert again
-      dpActivateAlert( dsParentDPEs[x], bRetVal2 );
-      if( !bRetVal2 )
-      {
-        DebugTN( "setSumAlerts(): FAILED TO dpActivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" );
-      }
-      
-      // Show if we're succesfull
-      if( bRetVal1 && bRetVal2 && ( iRetVal == 0 ) )
+      if (dynlen(dsChildDPEs) > 0)
       {
-        if( bDebug )
+        // First deactivate the alert
+        dpDeactivateAlert( dsParentDPEs[x], bRetVal1 );
+        if( !bRetVal1 )
+        {
+  	  DebugTN( "setSumAlerts(): FAILED TO dpDeactivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" );
+        }
+
+        // No change the sumalert dplist
+        iRetVal = dpSet( dsParentDPEs[x] + ":_alert_hdl.._dp_list",    dsChildDPEs,
+	  	         dsParentDPEs[x] + ":_alert_hdl.._dp_pattern", "" );
+
+        dyn_errClass derrLastError = getLastError();
+        if( dynlen(derrLastError) > 0 )
         {
-          DebugTN( "setSumAlerts(): SumAlerts for DPE '" + dsParentDPEs[x] + "' succesfully set to " + dynlen(dsChildDPEs) + " child DPEs" );
+  	  DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, getLastError():", derrLastError );
+        }
+        else if( iRetVal != 0 )
+        {
+	  DebugTN( "setSumAlerts(): FAILED TO dpSet FOR DPE, iRetVal = " + iRetVal );
+        }
+
+        // Activate alert again
+        dpActivateAlert( dsParentDPEs[x], bRetVal2 );
+        if( !bRetVal2 )
+        {
+	  DebugTN( "setSumAlerts(): FAILED TO dpActivateAlert FOR DPE '" + dsParentDPEs[x] + "'!!" );
+        }
+
+        // Show if we're succesfull
+        if( bRetVal1 && bRetVal2 && ( iRetVal == 0 ) )
+        {
+	  if( bDebug )
+	  {
+	    DebugTN( "setSumAlerts(): SumAlerts for DPE '" + dsParentDPEs[x] + "' succesfully set to " + dynlen(dsChildDPEs) + " child DPEs" );
+	  }
         }
       }
     }
-    
     else
     {
       DebugTN( "setSumAlerts(): DPE '" + dsParentDPEs[x] + "' DOESN'T HAVE AN ALERT-HANDLE OR NOT OF TYPE SUM-ALERT!!" );
@@ -131,6 +149,7 @@ private void setSumAlerts( string strDPE, bool bRunDone )
   }
   
   dpSet( "scriptInfo.setSumAlerts.runDone", true );
+  DebugTN("setSumAlerts.ctl:main|set of sumAlerts done");     
   
 }
 
diff --git a/MAC/Navigator2/scripts/transferMPs.ctl b/MAC/Navigator2/scripts/transferMPs.ctl
index 632cbc3f43aacd0922d8c09df4d7dc44118f0a84..da806d60e5abb30953f1fb073753313c17dc10b2 100644
--- a/MAC/Navigator2/scripts/transferMPs.ctl
+++ b/MAC/Navigator2/scripts/transferMPs.ctl
@@ -12,7 +12,7 @@ void main()
   if (dpExists("scriptInfo.transferMPs.debug")) {
     dpConnect("debugCB",true,"scriptInfo.transferMPs.debug");
   } else {
-    DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.debugpoint not found in Database");  
+    DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.debugpoint not found in bbase");  
   } 
 
   if (dpExists("scriptInfo.transferMPs.runDone")) {
@@ -35,10 +35,6 @@ void main()
   } else {
     DebugTN("transferMPs.ctl:main|set leafpoints to value in mp failed");
   }
-  
-  // if on a station, determine the ip adres to construct the ip adres of the POEWEC(S) write them in then database
-  // and set the manager active
-  
 }
 
 private void debugCB(string dp1, bool debug) {
@@ -53,10 +49,11 @@ private void startTransferMP(string dp1, bool done ) {
   string     sDestinationDPE;
   
   if (done) return;
+
+  startTransferMP_Embedded();
   
-  DebugTN("transferMPs.ctl:main|start transfer of MPconfigs to all DP's");     
+  DebugTN("transferMPs.ctl:main|start transfer of MPconfigs to all DP's");
 
-    
   string query="SELECT '_original.._value' FROM '_mp_*'";
   dyn_dyn_anytype tab;
   dyn_string dps;
@@ -71,12 +68,12 @@ private void startTransferMP(string dp1, bool done ) {
       }
     }
   }
-
+  
   for (k=1;k <= dynlen(dps); k++) {
     string dpstr = dps[k];
     dyn_string dsDpes = dpNames( dpstr + ".**"),
                dsDps = dpNames("*",dpTypeName(dpstr));
-  
+    
     // no datapoints found
     if ( dynlen(dsDps) > 1 ) {
     
@@ -85,6 +82,7 @@ private void startTransferMP(string dp1, bool done ) {
       ll = l * (l1 - 1);
       // !!! dynlen(dsDpes) * dynlen(dsDps) verwenden mit der 2-Sek-Verz�gerung
 
+      
       for ( i = 1; i <= l; i++ ) {
         if ( strpos(dsDpes[i],".") < 1 ) dsDpes[i] += ".";
         dsConfigs = dpNames( dsDpes[i] + ":*" );
@@ -101,13 +99,16 @@ private void startTransferMP(string dp1, bool done ) {
           sDestinationDPE = dsDpes[i];
           strreplace( sDestinationDPE, dpSubStr(dsDpes[i], DPSUB_DP), dpSubStr(dsDps[j], DPSUB_DP));
           daCheckDPE(sDestinationDPE);
-
           dpCopyConfig(dsDpes[i], sDestinationDPE, dsConfigs, iError);
         }
       }
     }
   }
   dpSet("scriptInfo.transferMPs.runDone",true);
+  
+  // fire setSumAlerts now that the database is complete
+  dpSet("scriptInfo.setSumAlerts.runDone",false);
+  
   DebugTN("MPTransfer Done.");
 }
 
@@ -213,3 +214,99 @@ bool skipDP(string dp) {
   if (strpos(dp,"MODE_CMD") > -1) return true;
   return false;
 }
+
+
+
+
+
+void startTransferMP_Embedded()
+{
+  int x, y;
+  dyn_dyn_anytype ddaData;
+  dyn_dyn_string ddsRefs;
+  dyn_string dsDPs;
+  dyn_string dsDPTs;
+  
+  DebugTN("========== transferMPs.ctl:main|start transfer of embedded MPconfigs to all master DP's");     
+  
+  string strQuery = "SELECT '_original.._value' FROM '_mp_*'";  
+  dpQuery( strQuery,ddaData );
+
+  for( x=2; x<=dynlen(ddaData); x++)
+  {
+    string strDP  = dpSubStr( ddaData[x][1], DPSUB_DP );
+    string strDPT = dpTypeName(strDP);
+    
+    if( skipDP( strDP ) )
+    {
+      continue;
+    }
+
+    if (dynContains(dsDPTs, strDPT))
+    {
+      continue;
+    }
+    
+    dynAppend(dsDPTs,strDPT);
+    
+
+    // Get all DP-Types that has reference to this DP-type
+    ddsRefs = dpGetRefsToDpType( strDPT );
+    
+    for( y=1; y<=dynlen(ddsRefs); y++ )
+    {
+      if( dynlen(ddsRefs[y]) != 2 )
+        continue;
+      
+      string strDPTsource = strDPT;
+      string strDPTtarget = ddsRefs[y][1];
+      string strDPEtarget = ddsRefs[y][2];
+      
+     CopyEmbbeddedMasterDP( strDPTsource, strDPTtarget, strDPEtarget );
+    }
+  }
+  
+  DebugTN("========== transfer of embedded MPconfigs to all master DP's done");     
+  
+}
+
+
+
+// Copies the master-datapoint configs of the given datapoint type 'strDPTsource' to the master-datapoint of the given type 'strDPTtarget'
+void CopyEmbbeddedMasterDP( string strDPTsource, string strDPTtarget, string strDPTtargetElement )
+{
+  int x, iError;
+  string strDPsource, strDPtarget, strDPEsource, strDPEtarget;
+  dyn_string dsDPEsSource;
+  dyn_string dsConfigs = makeDynString( "_distrib", "_address", "_archive", "_alert_hdl",  
+                                        "_cmd_conv", "_msg_conv",
+                                        "_default", "_dp_fct", "_pv_range", 
+                                        "_smooth", "_u_range", "_auth",
+                                        "_alert_class", "_original" );
+  
+  
+  strDPsource = "_mp_" + strDPTsource;
+  strDPtarget = "_mp_" + strDPTtarget;
+  
+  strDPsource = dpSubStr( strDPsource, DPSUB_DP );
+  strDPtarget = dpSubStr( strDPtarget, DPSUB_DP );
+  
+  if( !dpExists( strDPsource ) )
+    return;
+  
+  if( !dpExists( strDPtarget ) )
+    return;
+  
+  dsDPEsSource = dpNames( strDPsource + ".**" );
+  
+  if (bDebug)  DebugN( "CopyEmbbeddedMasterDP(): Copy config from " + dynlen(dsDPEsSource) + " DPE's of '" + strDPsource + "' to '" + strDPtarget + "." + strDPTtargetElement +"'" );
+  for( x=1; x<=dynlen(dsDPEsSource); x++ )
+  {
+    strDPEsource = dpSubStr( dsDPEsSource[x], DPSUB_DP_EL );
+
+    strDPEtarget = strDPtarget + "." + strDPTtargetElement + strltrim( strDPEsource, strDPsource );
+
+    if (bDebug)DebugN( "Copy " + strDPEsource + " -> " + strDPEtarget );
+    dpCopyConfig( strDPEsource, strDPEtarget, dsConfigs, iError);
+  }
+}