diff --git a/.gitignore b/.gitignore
index 4aa23f251b5781d11d54a5213ab3ab242c0ccb97..ee17dcfa1cc9e102b5d3aebf236dd6440ad7699d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -260,6 +260,8 @@ RTCP/Storage/autoconf_share
 RTCP/Storage/lofarconf
 SAS/OTB/MoM-OTDB-adapter/bin
 SAS/OTB/MoM-OTDB-adapter/tasks
+SAS/OTB/OTB/build
+SAS/OTB/OTB/dist
 SAS/OTB/jOTDB2/Makefile.common
 SAS/OTB/jOTDB2/autoconf_share
 SAS/OTB/jOTDB2/build
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/PICtableModel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/PICtableModel.java
index 4529d47d876224c87c534f74e73a48b769c3cf19..6348939f0b81d4d60c7eb0f96aab9e6503619fcd 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/PICtableModel.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/PICtableModel.java
@@ -78,8 +78,8 @@ public class PICtableModel extends javax.swing.table.AbstractTableModel {
             data[row][1]=new String(OtdbRmi.getTreeState().get(tInfo.state));
             data[row][2]=new String(OtdbRmi.getClassif().get(tInfo.classification));
 	    data[row][3]=new String(tInfo.creator);
-	    data[row][4]=new String(tInfo.starttime);
-	    data[row][5]=new String(tInfo.stoptime);
+	    data[row][4]=new String(tInfo.starttime.replace("T", " "));
+	    data[row][5]=new String(tInfo.stoptime.replace("T", " "));
 	    data[row][6]=new String(tInfo.description);
             fireTableDataChanged();
         } catch (Exception e) {
@@ -115,8 +115,8 @@ public class PICtableModel extends javax.swing.table.AbstractTableModel {
 	            data[k][1]=new String(OtdbRmi.getTreeState().get(tInfo.state));
                     data[k][2]=new String(OtdbRmi.getClassif().get(tInfo.classification));
 	            data[k][3]=new String(tInfo.creator);
-	            data[k][4]=new String(tInfo.starttime);
-	            data[k][5]=new String(tInfo.stoptime);
+	            data[k][4]=new String(tInfo.starttime.replace("T", " "));
+	            data[k][5]=new String(tInfo.stoptime.replace("T", " "));
 	            data[k][6]=new String(tInfo.description);
                 }
             }
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/VICtableModel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/VICtableModel.java
index 878d9a420e0727c32d2628a35bf60a704ffc33bd..3ef92f7857cf6d514f92f96e4c66290c54a1e36f 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/VICtableModel.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/tablemodels/VICtableModel.java
@@ -66,8 +66,8 @@ public class VICtableModel extends javax.swing.table.AbstractTableModel {
             data[row][2]=new String(OtdbRmi.getTreeState().get(tInfo.state));
             data[row][3]=new String(tInfo.campaign);
             data[row][4]=new Integer(tInfo.momID());
-            data[row][5]=new String(tInfo.starttime);
-            data[row][6]=new String(tInfo.stoptime);
+            data[row][5]=new String(tInfo.starttime.replace("T", " "));
+            data[row][6]=new String(tInfo.stoptime.replace("T", " "));
             data[row][7]=new String(tInfo.description);
             fireTableDataChanged();
         } catch (Exception e) {
@@ -103,8 +103,8 @@ public class VICtableModel extends javax.swing.table.AbstractTableModel {
 	            data[k][2]=new String(OtdbRmi.getTreeState().get(tInfo.state));
 	            data[k][3]=new String(tInfo.campaign);
 	            data[k][4]=new Integer(tInfo.momID());
-	            data[k][5]=new String(tInfo.starttime);
-	            data[k][6]=new String(tInfo.stoptime);
+	            data[k][5]=new String(tInfo.starttime.replace("T", " "));
+	            data[k][6]=new String(tInfo.stoptime.replace("T", " "));
 	            data[k][7]=new String(tInfo.description);
                 }
             }
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.form b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.form
index 921dee49954c75e490d101834b29ce3d1f368bd3..fb7144f5ffd7d951ad6846468a6b84633a3a6105 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.form
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.form
@@ -4,6 +4,7 @@
   <AuxValues>
     <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
     <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
     <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
     <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
     <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.java
index 26a67357e8008f7aa8af18cd1c0c95695e5eab0b..0329b6add2cb88a028a53ea5f7d85ccc75901183 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/LogParamPanel.java
@@ -460,7 +460,7 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
     
     private void setStartDateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setStartDateButtonActionPerformed
         try {
-            SimpleDateFormat aD = new SimpleDateFormat("yyyy-MMM-d HH:mm", itsLocale);
+            SimpleDateFormat aD = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm", itsLocale);
             Date initialDate = aD.parse(LogParamStartTimeText.getText());
             DateTimeChooser chooser = new DateTimeChooser(initialDate);
             itsStartTime = DateTimeChooser.showDialog(this, "StartTime", chooser);
@@ -471,8 +471,8 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
     }
 
     private Date getGMTTime(Date aDate) {
-        SimpleDateFormat aD   = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
-        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat aD   = new SimpleDateFormat("yyyy-MMM-d'T'HH:mm",itsLocale);
+        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MMM-d'T'HH:mm",itsLocale);
         aGMT.setTimeZone(TimeZone.getTimeZone("GMT"));
         String  aS = aGMT.format(aDate);
         
@@ -488,7 +488,7 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
     
     private void setStopDateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setStopDateButtonActionPerformed
         try {
-            SimpleDateFormat aD = new SimpleDateFormat("yyyy-MMM-d HH:mm", itsLocale);
+            SimpleDateFormat aD = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm", itsLocale);
             Date initialDate = aD.parse(LogParamEndTimeText.getText());
             DateTimeChooser chooser = new DateTimeChooser(initialDate);
             itsStopTime = DateTimeChooser.showDialog(this, "StopTime", chooser);
@@ -503,17 +503,17 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
      */
     public void composeTimeString(String time) {
         // Set the dateformat OTDB takes
-        SimpleDateFormat id = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat id = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm",itsLocale);
         if (time.equals("start")) {
             if (itsStartTime != null) {
-              LogParamStartTimeText.setText(id.format(itsStartTime));
+              LogParamStartTimeText.setText(id.format(itsStartTime).replace("T", " "));
             } else {
                 LogParamStartTimeText.setText("not-a-date-time");
             }
               
         } else if (time.equals("stop")) {
             if (itsStopTime != null) {
-                LogParamEndTimeText.setText(id.format(itsStopTime));
+                LogParamEndTimeText.setText(id.format(itsStopTime).replace("T", " "));
             } else {
                 LogParamEndTimeText.setText("not-a-date-time");
             }
@@ -521,8 +521,8 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
     }   
     private void setTime() {
         
-        SimpleDateFormat aDate = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
-        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat aDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm",itsLocale);
+        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm",itsLocale);
         aGMT.setTimeZone(TimeZone.getTimeZone("GMT"));
         Calendar aC = Calendar.getInstance(itsLocale);
         try {
@@ -530,19 +530,19 @@ public class LogParamPanel extends javax.swing.JPanel implements IViewPanel {
                 Date endDate = aC.getTime();
                 aC.add(Calendar.MONTH, -1);
                 String  aS = aGMT.format(endDate);
-                LogParamEndTimeText.setText(aS);
+                LogParamEndTimeText.setText(aS.replace("T", " "));
             } else {
                 String  aS = itsMainFrame.getSharedVars().getLogParamEndTime();
-                LogParamEndTimeText.setText(aS); 
+                LogParamEndTimeText.setText(aS.replace("T", " "));
                 itsStopTime = aDate.parse(LogParamEndTimeText.getText());
             }
             if (itsMainFrame.getSharedVars().getLogParamStartTime().equals("")) {
                 Date startDate = aC.getTime();
                 String aS = aGMT.format(startDate);
-                LogParamStartTimeText.setText(aS);
+                LogParamStartTimeText.setText(aS.replace("T", " "));
             } else {
                 String  aS = itsMainFrame.getSharedVars().getLogParamStartTime();
-                LogParamStartTimeText.setText(aS); 
+                LogParamStartTimeText.setText(aS.replace("T", " "));
                 itsStartTime = aDate.parse(LogParamStartTimeText.getText());
             }
         } catch (ParseException ex) {
diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreeInfoDialog.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreeInfoDialog.java
index a5706ec14f17f470988433a01f7f548142e94a87..00447222c58021710dbe7bed14ca672682de586d 100644
--- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreeInfoDialog.java
+++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otbcomponents/TreeInfoDialog.java
@@ -96,7 +96,7 @@ public class TreeInfoDialog extends javax.swing.JDialog {
         this.durationValue.loopEnabled(true);
         this.durationValue.adjustWidthToMaximumValue();
 
-        SimpleDateFormat id = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat id = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm",itsLocale);
         if (itsMultiple) {
             topLabel.setText("Tree Meta Data  -- MULTIPLE SELECTION -- Only first Tree's info is shown \n" +
                              "                Changes will be applied to all selections");            
@@ -166,12 +166,15 @@ public class TreeInfoDialog extends javax.swing.JDialog {
      */
     public void composeTimeString(String time) {
         // Set the dateformat OTDB takes
-        SimpleDateFormat id = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat id = new SimpleDateFormat("yyyy-MM-dd HH:mm",itsLocale);
         if (time.equals("start")) {
             if (itsStartDate != null) {
               startTimeInput.setText(id.format(itsStartDate));
-              if (stopTimeInput.getText().equals("") || stopTimeInput.getText().equals("not-a-date-time")) {
+              if (stopTimeInput.getText().equals("") ||
+                      stopTimeInput.getText().equals("not-a-date-time") ||
+                      itsStartDate.after(itsStopDate)) {
                 stopTimeInput.setText(id.format(itsStartDate));
+                itsStopDate=itsStartDate;
               }
               setDurationButton.setEnabled(true);
               setStopDateButton.setEnabled(true);
@@ -188,6 +191,11 @@ public class TreeInfoDialog extends javax.swing.JDialog {
                 stopTimeInput.setText("not-a-date-time");
                 saveButton.setEnabled(false);
             }
+            if (itsStartDate.after(itsStopDate)) {
+                startTimeInput.setText(id.format(itsStopDate));
+                itsStartDate=itsStopDate;
+
+            }
         }
     }
 
@@ -322,31 +330,17 @@ public class TreeInfoDialog extends javax.swing.JDialog {
     
     /* Fill the view */
     private void initView() {
-/*        // prepare a active/obsolete only combobox for special case state changes
-        DefaultComboBoxModel aModel = (DefaultComboBoxModel)stateInput.getModel();
-        aModel.removeAllElements();
-        aModel.addElement("active");
-        aModel.addElement("obsolete");
-        
-        if (!itsTreeState.equals("active") && !itsTreeState.equals("obsolete")) {
-            aModel.addElement(itsTreeState);
-        }
-        
-        if (itsTreeType.equals("hardware") || itsTreeType.equals("VItemplate")) {
-            stateInput.setModel(aModel);
-        }
-*/
         treeIDInput.setText(String.valueOf(itsTree.treeID()));
         momIDInput.setText(String.valueOf(itsTree.momID()));
         classificationInput.setSelectedItem(itsClassification);
         creatorInput.setText(itsTree.creator);
-        creationDateInput.setText(itsTree.creationDate);
+        creationDateInput.setText(itsTree.creationDate.replace("T", " "));
         typeInput.setText((String)OtdbRmi.getTreeType().get(itsTree.type));
         stateInput.setSelectedItem(itsTreeState);
         originalTreeIDInput.setText(String.valueOf(itsTree.originalTree));
         campaignInput.setText(itsTree.campaign);
-        startTimeInput.setText(itsTree.starttime);
-        stopTimeInput.setText(itsTree.stoptime);
+        startTimeInput.setText(itsTree.starttime.replace("T", " "));
+        stopTimeInput.setText(itsTree.stoptime.replace("T", " "));
         descriptionInput.setText(itsDescription);
     }
     
@@ -387,7 +381,7 @@ public class TreeInfoDialog extends javax.swing.JDialog {
                     }
                     
                     // Check start & stoptimes and alter in DB when changed
-                    if (!aTree.starttime.equals(startTimeInput.getText()) || !aTree.stoptime.equals(stopTimeInput.getText())) {
+                    if (!aTree.starttime.replace("T", " ").equals(startTimeInput.getText()) || !aTree.stoptime.replace("T", " ").equals(stopTimeInput.getText())) {
                         hasChanged=true;
                         aTree.starttime = startTimeInput.getText();
                         aTree.stoptime = stopTimeInput.getText();
@@ -432,7 +426,7 @@ public class TreeInfoDialog extends javax.swing.JDialog {
                     // Next for VIC only
                     if (itsTreeType.equals("VHtree")) {
                         if (itsStarttime != null && itsStoptime != null &&
-                                (!itsStarttime.equals(startTimeInput.getText()) || !itsStoptime.equals(stopTimeInput.getText()))) {
+                                (!itsStarttime.replace("T", " ").equals(startTimeInput.getText().replace("T", " ")) || !itsStoptime.replace("T", " ").equals(stopTimeInput.getText().replace("T", " ")))) {
                             if (startTimeInput.getText().length() > 0 && stopTimeInput.getText().length() > 0 ) {
                                hasChanged=true;
                                itsTree.starttime = startTimeInput.getText();
@@ -659,8 +653,8 @@ public class TreeInfoDialog extends javax.swing.JDialog {
     }// </editor-fold>//GEN-END:initComponents
 
     private Date getGMTTime(Date aDate) {
-        SimpleDateFormat aD   = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
-        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+        SimpleDateFormat aD   = new SimpleDateFormat("yyyy-MM-dd HH:mm",itsLocale);
+        SimpleDateFormat aGMT = new SimpleDateFormat("yyyy-MM-dd HH:mm",itsLocale);
         aGMT.setTimeZone(TimeZone.getTimeZone("GMT"));
         String  aS = aGMT.format(aDate);
         
@@ -679,7 +673,7 @@ public class TreeInfoDialog extends javax.swing.JDialog {
        String aS = stopTimeInput.getText(); 
        if (!aS.equals("")  && !aS.equals("not-a-date-time") ) {
             try {
-                SimpleDateFormat aD = new SimpleDateFormat("yyyy-MMM-d HH:mm", itsLocale);
+                SimpleDateFormat aD = new SimpleDateFormat("yyyy-MM-dd HH:mm", itsLocale);
                 initialDate = aD.parse(aS);
             } catch (ParseException ex) {
                 ex.printStackTrace();
@@ -692,10 +686,10 @@ public class TreeInfoDialog extends javax.swing.JDialog {
 
     private void setStartDateButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setStartDateButtonActionPerformed
         Date initialDate = getGMTTime(new Date());
-        String aS = startTimeInput.getText();
+        String aS = startTimeInput.getText().replace("T", " ");
         if (!aS.equals("")  && ! aS.equals("not-a-date-time") ) {
             try {
-                SimpleDateFormat aD = new SimpleDateFormat("yyyy-MMM-d HH:mm", itsLocale);
+                SimpleDateFormat aD = new SimpleDateFormat("yyyy-MM-dd HH:mm",itsLocale);
                 initialDate = aD.parse(aS);
             } catch (ParseException ex) {
                 ex.printStackTrace();
@@ -744,7 +738,7 @@ public class TreeInfoDialog extends javax.swing.JDialog {
             }
 
             itsStopDate = cal.getTime();
-            SimpleDateFormat id = new SimpleDateFormat("yyyy-MMM-d HH:mm",itsLocale);
+            SimpleDateFormat id = new SimpleDateFormat("yyyy-MM-dd HH:mm",itsLocale);
             stopTimeInput.setText(id.format(itsStopDate));
 }//GEN-LAST:event_setDurationButtonActionPerformed
 
diff --git a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jCommon.cc b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jCommon.cc
index 819d93e871375f3197a3974506b7d283068630ce..0e03ff02ccb3565c2a1a6d94eb39915b153fb081 100644
--- a/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jCommon.cc
+++ b/SAS/OTB/jOTDB2/src/nl_astron_lofar_sas_otb_jotdb2_jCommon.cc
@@ -93,13 +93,13 @@ jobject convertOTDBtree(JNIEnv *env, OTDBtree aTree) {
   
   env->SetShortField (jTree, fid_jOTDBtree_classification, aTree.classification);
   env->SetObjectField (jTree, fid_jOTDBtree_creator, env->NewStringUTF (aTree.creator.c_str ()));
-  env->SetObjectField (jTree, fid_jOTDBtree_creationDate, env->NewStringUTF (to_simple_string(aTree.creationDate).c_str ()));
+  env->SetObjectField (jTree, fid_jOTDBtree_creationDate, env->NewStringUTF (to_iso_extended_string(aTree.creationDate).c_str ()));
   env->SetShortField (jTree, fid_jOTDBtree_type, aTree.type);
   env->SetShortField (jTree, fid_jOTDBtree_state, aTree.state);
   env->SetIntField (jTree, fid_jOTDBtree_originalTree, aTree.originalTree);
   env->SetObjectField (jTree, fid_jOTDBtree_campaign, env->NewStringUTF (aTree.campaign.c_str ()));
-  env->SetObjectField (jTree, fid_jOTDBtree_starttime, env->NewStringUTF(to_simple_string(aTree.starttime).c_str ()));
-  env->SetObjectField (jTree, fid_jOTDBtree_stoptime, env->NewStringUTF (to_simple_string(aTree.stoptime).c_str ()));
+  env->SetObjectField (jTree, fid_jOTDBtree_starttime, env->NewStringUTF(to_iso_extended_string(aTree.starttime).c_str ()));
+  env->SetObjectField (jTree, fid_jOTDBtree_stoptime, env->NewStringUTF (to_iso_extended_string(aTree.stoptime).c_str ()));
   env->SetObjectField (jTree, fid_jOTDBtree_description, env->NewStringUTF (aTree.description.c_str()));
   
   return jTree;
@@ -122,7 +122,7 @@ jobject convertTreeState (JNIEnv *env, TreeState aTreeState)
   env->SetIntField (jTreeState, fid_jTreeState_momID, aTreeState.momID);
   env->SetShortField (jTreeState, fid_jTreeState_newState, aTreeState.newState);
   env->SetObjectField (jTreeState, fid_jTreeState_username, env->NewStringUTF(aTreeState.username.c_str()));
-  env->SetObjectField (jTreeState, fid_jTreeState_timestamp, env->NewStringUTF(to_simple_string(aTreeState.timestamp).c_str()));
+  env->SetObjectField (jTreeState, fid_jTreeState_timestamp, env->NewStringUTF(to_iso_extended_string(aTreeState.timestamp).c_str()));
   return jTreeState;
 }
 
@@ -197,7 +197,7 @@ jobject convertOTDBvalue (JNIEnv *env, OTDBvalue aValue)
   
   env->SetObjectField (jvalue, fid_jOTDBvalue_name, env->NewStringUTF (aValue.name.c_str ()));
   env->SetObjectField (jvalue, fid_jOTDBvalue_value, env->NewStringUTF (aValue.value.c_str ()));
-  env->SetObjectField (jvalue, fid_jOTDBvalue_time, env->NewStringUTF (to_simple_string(aValue.time).c_str ()));
+  env->SetObjectField (jvalue, fid_jOTDBvalue_time, env->NewStringUTF (to_iso_extended_string(aValue.time).c_str ()));
   
   return jvalue;
 }