Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java	(revision 1699)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java	(revision 1700)
@@ -111,4 +111,35 @@
 				.createNewTaskInstance(model);
 		
+		
+		// TODO: Debug output
+		System.out.println("PRINTING MODEL: ");
+		for (int i = 0; i < subsequence.getSequence().getChildren().size(); i++) {
+			System.out.println(subsequence.getSequence().getChildren().get(i));
+
+			if (subsequence.getSequence().getChildren().get(i).getType() == "selection") {
+				for (int j = 0; j < ((ISelection) subsequence.getSequence().getChildren().get(i))
+						.getChildren().size(); j++) {
+					if(((IStructuringTemporalRelationship) subsequence.getSequence().getChildren().get(i)).getChildren().get(j).getType() =="sequence")
+					{
+						ISequence foo =  (ISequence) ((ISelection) (subsequence.getSequence().getChildren().get(i))).getChildren().get(j);
+						System.out.println("\t" + foo);
+						for(int k=0; k< foo.getChildren().size();k++) {
+							System.out.println("\t\t" +foo.getChildren().get(k));
+						}
+						System.out.println();
+					}
+					else{
+						System.out.println("\t"
+								+ ((ISelection) subsequence.getSequence().getChildren().get(i))
+										.getChildren().get(j));
+					}
+				
+				}
+			}
+		
+		}
+		System.out.println();
+		
+		
 		//TODO: This is dirty!
 		missedOptionals=0;
@@ -125,5 +156,5 @@
 						
 					if(((IMarkingTemporalRelationship) tempTask).getMarkedTask() == parent.get(startIndex).getTask()) {
-						//System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType());
+						System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType());
 						IOptionalInstance optional = taskFactory.createNewTaskInstance((IOptional) tempTask);
 						taskBuilder.setChild(optional, parent.get(startIndex));
@@ -131,5 +162,5 @@
 					}
 					else {
-						//System.out.println("Adding Empty optional, not deleting anything from the input sequence");
+						System.out.println("Adding Empty optional, not deleting anything from the input sequence");
 						IOptionalInstance optional = taskFactory.createNewTaskInstance((IOptional) tempTask);
 						taskBuilder.addChild(subsequence, optional);
@@ -143,5 +174,5 @@
 				if(tmpSel.getChildren().get(0).getType() == "sequence" && tmpSel.getChildren().get(1).getType()=="sequence") {
 					ISequenceInstance selseq = null;
-					//The selection i create can just have 2 children
+					//The selection I create can just have 2 children
 					if(parent.get(startIndex).getTask().getId() == ((ISequence)tmpSel.getChildren().get(0)).getChildren().get(0).getId()) {
 						selseq = taskFactory.createNewTaskInstance((ISequence) tmpSel.getChildren().get(0));
@@ -151,29 +182,36 @@
 					}
 					else if(parent.get(startIndex).getTask().getId() == tmpSel.getChildren().get(0).getId() || parent.get(startIndex).getTask().getId() == tmpSel.getChildren().get(1).getId() ) {
+						System.out.println("Session ID: " + parent.get(startIndex).getTask().getId() + " tmpSel(0): " + tmpSel.getChildren().get(0).getId() + " tmpSel(1): " +tmpSel.getChildren().get(1).getId()  );
 						continue;
 					}
 						
 					for (int k=0;k<selseq.getSequence().getChildren().size();k++) {
+						System.out.println("Trying to add " + parent.get(startIndex) + " to " + selseq);
 						taskBuilder.addChild(selseq,parent.get(startIndex));
 						taskBuilder.removeTaskInstance(parent, startIndex);
 						i++;
-					}
+						System.out.println("I:" + i);
+					}
+					System.out.println("Trying to add " + selseq + " to " + tmpSel);
 					taskBuilder.setChild(selection, selseq);
+					taskBuilder.addChild(subsequence, selection);
+					modelindex++;
+					continue;
 				}
 				else
 				{
-					//System.out.println("Adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask);
+					System.out.println("Trying to adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask);
 					taskBuilder.setChild(selection, parent.get(startIndex));
+					taskBuilder.addChild(subsequence,selection);
 				}
-				taskBuilder.addChild(subsequence,selection);
-
 			} else if (tempTask.getType() == "sequence") {
-				//System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask);
+				System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask);
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			} else if (tempTask.getType() == "iteration") {
-				//System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask);
+				System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask);
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			} else {
-				//System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask);
+				System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask);
+				System.out.println("Foo");
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			}
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 1699)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1700)
@@ -68,5 +68,5 @@
 class SequenceForTaskDetectionRuleAlignment implements ISessionScopeRule {
 
-	//private int iteration = 0;
+	private int iteration = 0;
 	/**
 	 * <p>
@@ -144,5 +144,5 @@
 		
 		do {
-			//iteration++;
+			iteration++;
 
 			appData.detectedAndReplacedTasks = false;
@@ -526,4 +526,7 @@
 							selectionfound = true;
 						}
+						else{
+							continue;
+						}
 						i++;
 					}
@@ -639,6 +642,6 @@
 					MatchOccurence oc = it.next();
 					
-					/*
-					if (iteration > 0) {
+					
+					if (iteration > 1) {
 					 
 					System.out.println("Trying to replace sequence: ");
@@ -659,5 +662,5 @@
 					}
 					}
-					*/
+					
 					// Check if nothing has been replaced in the sequence we
 					// want to replace
