Index: branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java
===================================================================
--- branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1734)
+++ branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1735)
@@ -98,8 +98,8 @@
 		/** HashMap for keeping track in which sequence which replacement has been performed.
 		 *  Neccessary for updating the indices of other occurrences accordingly */
-		public HashMap<Integer, List<MatchOccurence>> replacedOccurences;
+		private HashMap<Integer, List<MatchOccurence>> replacedOccurences;
 
 		/** The list of all found matches */
-		public LinkedList<Match> matchseqs;
+		private LinkedList<Match> matchseqs;
 
 		/** The generated NumberSequences. 
@@ -515,5 +515,4 @@
 			executor.awaitTermination(2, TimeUnit.HOURS);
 		} catch (final InterruptedException e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
@@ -578,5 +577,5 @@
 	/**
 	 * <p>
-	 * TODO clarify why this is done
+	 * TODO clarify why this is done (in fact, ask Patrick Harms)
 	 * </p>.
 	 *
@@ -646,8 +645,7 @@
 	 * Match as sequence.
 	 *
-	 * @param appData            , Ruleapplication Data needed to keep track of all created
-	 *            tasks
-	 * @param m            The match to be converted into a Task
-	 * @return The task of the match with an ISequence as it's root
+	 * @param appData		RuleApplicationData needed to keep track of all created tasks 
+	 * @param m				The match to be converted into a Task
+	 * @return 				The task of the match with an ISequence as its root
 	 */
 	synchronized public ISequence matchAsSequence(RuleApplicationData appData,
@@ -692,5 +690,11 @@
 			}
 			// Both tasks are not equal, we need to insert a selection here.
-			// Check if the next position is not a selection
+			// Now things get complicated. We first need to check 
+			// if the next position is not a selection. Then we can just create a selection
+			// of the both Tasks
+			// In the other case (more than one selection following this selection), we want to 
+			// create a selection of sequences where each sequence gets the corresponding task of 
+			// the its sequence in the pattern.
+			//
 			else if (i < (first.length - 1)) {
 
@@ -840,5 +844,5 @@
 	 */
 	private void replaceMatches(RuleApplicationData appData) {
-		appData.replacedOccurences = new HashMap<Integer, List<MatchOccurence>>();
+		appData.setReplacedOccurences(new HashMap<Integer, List<MatchOccurence>>());
 
 		final int matchSeqSize = appData.getMatchseqs().size();
@@ -914,5 +918,4 @@
 						+ " threads");
 		// Prepare parallel search of matchseqs
-
 		final int matchSeqSize = appData.getMatchseqs().size();
 		int newThreads = nThreads;
@@ -1135,6 +1138,4 @@
 								}
 							}
-							System.out.println("Replacing in sequence"
-									+ oc.getSequenceId());
 							synchronized (appData) {
 								appData.detectedAndReplacedTasks = true;
@@ -1156,5 +1157,4 @@
 						// length of
 						// instance. (OptionalInstances may be shorter)
-
 						synchronized (appData.getReplacedOccurrences().get(
 								oc.getSequenceId())) {
