diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
index 6858c77e5a211c9d9fc01b7c46869f211bd15685..4b38e84081450ce71c8a66c34384b846048dde40 100644
--- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
+++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java
@@ -132,7 +132,6 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
                 if (propertyKey.contains("*"))
                 {
                     String spacePreffix = propertyKey.substring(0, propertyKey.lastIndexOf("*"));
-                    System.out.println(spacePreffix);
                     for (SpaceWithProjectsAndRoleAssignments space : spacesList)
                     {
                         if (space.getCode().startsWith(spacePreffix))
@@ -368,7 +367,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
 
             HashMap<String, String> parentProperties = propertiesFromParentSample(dataSet, sequencingSamples, Index1, Index2);
 
-            String externalSampleName = parentProperties.get(EXTERNAL_SAMPLE_NAME_PROPERTY_CODE);
+            String externalSampleName = getExternalSampleNamefromDataSet(dataSet);
             String contactPersonName = parentProperties.get(CONTACT_PERSON_NAME_PROPERTY_CODE);
 
             String Index = null;
@@ -448,6 +447,22 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat
             return null;
         }
 
+        private static String getExternalSampleNamefromDataSet(AbstractExternalData dataSet)
+        {
+            List<IEntityProperty> properties = dataSet.getProperties();
+
+            String externalSampleName = null;
+            for (IEntityProperty p : properties)
+            {
+                if (p.getPropertyType().getCode().equals(EXTERNAL_SAMPLE_NAME_PROPERTY_CODE))
+                {
+                    externalSampleName = p.getValue();
+                    return externalSampleName;
+                }
+            }
+            return null;
+        }
+
         private static HashMap<String, String> propertiesFromParentSample(AbstractExternalData dataSet,
                 Collection<Sample> sequencingSamples, String dsIndex1, String dsIndex2)
         {
diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java
index c97ee934c98dfdd20a0d6045502088d5d4ef41e3..54d937f0b19e4593b3cc9342bc50092489fa03c7 100644
--- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java
+++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java
@@ -19,9 +19,9 @@ package ch.ethz.bsse.cisd.dsu.tracking.main;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
@@ -61,12 +61,6 @@ public class TrackingBO
 
     private static final String TRUE = "true";
 
-    //    private static final String CL_PARAMETER_LANES = "lanes";
-
-    //    private static final String CL_PARAMETER_ALL = "all";
-
-    //    private static final String CL_PARAMETER_CHANGED_LANES = "changed_lanes";
-
     private final ITrackingServer trackingServer;
 
     private final IEntityTrackingEmailGenerator emailGenerator;
@@ -97,11 +91,12 @@ public class TrackingBO
                     commandLineMap.get(TrackingClient.CL_PARAMETER_LANES), session);
         } else if (commandLineMap.containsKey(TrackingClient.CL_PARAMETER_ALL))
         {
-            changedEntities = fetchChangedEntities(prevTrackingState, trackingServer, commandLineMap, session);
+            //            changedEntities = fetchChangedEntities(prevTrackingState, trackingServer, commandLineMap, session);
+            System.out.println("This function is deactivated");
         }
         else if (commandLineMap.containsKey(TrackingClient.CL_PARAMETER_CHANGED_LANES))
         {
-            Set<String> changed_lanes = fetchChangedLanes(prevTrackingState, trackingServer, session);
+            Map<String, String> changed_lanes = fetchChangedLanes(prevTrackingState, trackingServer, session);
             sendEmails = false;
 
         }
@@ -228,7 +223,7 @@ public class TrackingBO
         return gatherTrackedEntities(trackingState, trackingServer, session, dataSets, changedTrackingMap);
     }
 
-    private static Set<String> fetchChangedLanes(TrackingStateDTO trackingState,
+    private static Map<String, String> fetchChangedLanes(TrackingStateDTO trackingState,
             ITrackingServer trackingServer, SessionContextDTO session)
     {
         long maxDataSetId = getMaxDataSetId(trackingState);
@@ -239,25 +234,32 @@ public class TrackingBO
         List<AbstractExternalData> dataSets =
                 trackingServer.listDataSets(session.getSessionToken(), dataSetCriteria);
 
-        Set<String> changedLanesSet = new HashSet<String>();
+        Map<String, String> changedLanesMap = new HashMap<String, String>();
 
         // Loop over all new data sets
         for (AbstractExternalData d : dataSets)
         {
             Long newDataSetID = d.getId();
-            String lanePermId = d.getSample().getPermId();
+            Sample lane = d.getSample();
+            String lanePermId = lane.getPermId();
+            String laneSpace = lane.getSpace().getCode();
             Long maxDatasetIdForSample = getMaxDataSetIdForSample(trackingState, lanePermId);
 
             // Check if the given lanes/samples have data sets which are newer than the last seen one (= maxDatasetIdForSample)
             if (newDataSetID > maxDatasetIdForSample)
             {
                 SampleIdentifier currentLaneId = new SampleIdentifier(d.getSampleCode());
-                changedLanesSet.add(currentLaneId.toString());
+                changedLanesMap.put(currentLaneId.toString().substring(1), laneSpace);
                 LogUtils.info("DataSetID: " + newDataSetID + " of NEW data Sets > MAX DataSet id for this sample: " + maxDatasetIdForSample);
             }
         }
-        LogUtils.info(changedLanesSet.toString());
-        return changedLanesSet;
+        Set<Map.Entry<String, String>> entrySet = changedLanesMap.entrySet();
+        for (Entry<String, String> entry : entrySet)
+        {
+            System.out.println(entry.getKey() + " " + entry.getValue());
+        }
+        LogUtils.info(changedLanesMap.toString());
+        return changedLanesMap;
     }
 
     private static TrackedEntities fetchChangedDataSets(TrackingStateDTO trackingState,
@@ -295,6 +297,7 @@ public class TrackingBO
             {
                 LogUtils.info("DataSetID: " + newDataSetID + " of NEW data Sets > MAX DataSet id for this sample: " + maxDatasetIdForSample);
                 filteredDataSets.add(d);
+                System.out.println("Sending Email for " + newDataSetID + " which is part of " + d.getSampleCode());
                 addDataSetTo(changedTrackingMap, d);
             }
         }
@@ -396,13 +399,13 @@ public class TrackingBO
             TreeMap<String, Long> newTrackingState = new TreeMap<String, Long>();
 
             HashMap<String, ArrayList<Long>> changedTrackingMap = changedEntities.getChangedTrackingMap();
-            System.out.println(changedTrackingMap.toString());
+            //            System.out.println(changedTrackingMap.toString());
 
             for (Map.Entry<String, ArrayList<Long>> entry : changedTrackingMap.entrySet())
             {
                 newTrackingState.put(entry.getKey(), Collections.max(entry.getValue()));
             }
-            System.out.println(newTrackingState.entrySet().toString());
+            //            System.out.println(newTrackingState.entrySet().toString());
 
             for (Map.Entry<String, Long> entry : prevState.getLastSeenDataSetIdMap().entrySet())
             {
diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java
index bdf203c31ddc08fd6a51ab6aad4ed7be63cccb14..47d6d046be3bc15b9c4f248f35c3e1154f4d9a81 100644
--- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java
+++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java
@@ -97,11 +97,11 @@ public class TrackingClient
                 .withDescription("list of lanes to track")
                 .create(CL_PARAMETER_LANES);
         lanes.setArgs(Option.UNLIMITED_VALUES);
-        Option all = new Option(CL_PARAMETER_ALL, "track all lanes, only for testing, never use in production!");
+        //        Option all = new Option(CL_PARAMETER_ALL, "track all lanes, only for testing, never use in production!");
         Option new_lanes = new Option(CL_PARAMETER_CHANGED_LANES, "only list lanes which have new datasets");
 
         options.addOption(lanes);
-        options.addOption(all);
+        //        options.addOption(all);
         options.addOption(new_lanes);
 
         // automatically generate the help statement
@@ -122,7 +122,9 @@ public class TrackingClient
             }
             if (line.hasOption(CL_PARAMETER_ALL))
             {
-                commandLineMap.put(CL_PARAMETER_ALL, null);
+                //                commandLineMap.put(CL_PARAMETER_ALL, null);
+                System.out.println("This option is deactivated.");
+
             }
             if (line.hasOption(CL_PARAMETER_CHANGED_LANES))
             {