Index: /branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequenceTest.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequenceTest.java	(revision 1664)
+++ /branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequenceTest.java	(revision 1665)
@@ -18,5 +18,5 @@
 		int[] seq3 = new int[]{0,0,5,6,0,6,9,10,0,12,13,0,15,16,0,13,0,15,21,13,0,15,21,0,0,0,6,0,9,32,0,5,10,0,6,0,9,32,0,5,43,0,6,0,9,5,6,0,9,43,0,6,0,9,32,0,5,6,6,9,43,0,0,0,0};
 	
-		
+		int[] seq4 = new int[]{32,32,5,6,9,10,0};
 		int[] pat1  = new int[]{2,3,4};
 		int[] pat2  = new int[]{2,3,4};
@@ -44,4 +44,8 @@
 		//int[] pat16 = new int[]{6,-1, 9,71,32, 5,10,0};
 		
+		int[] pat17 = new int[]{32,0,5,10};
+		int[] pat18 = new int[]{271,-1,32,247};
+		
+		
 		NumberSequence ns = new NumberSequence(10);
 		ns.setSequence(seq);
@@ -50,4 +54,8 @@
 		ns2.setSequence(seq3);
 		
+		NumberSequence ns3 = new NumberSequence(7);
+		ns3.setSequence(seq4);
+		
+		
 		NumberSequence firstpattern = new NumberSequence(3);
 		NumberSequence secondpattern = new NumberSequence(3);
@@ -59,4 +67,8 @@
 		NumberSequence sixthpattern = new NumberSequence(pat14.length);
 		
+		NumberSequence seventhpattern = new NumberSequence(pat17.length);
+		NumberSequence eigthpattern = new NumberSequence(pat17.length);
+		
+		
 		firstpattern.setSequence(pat1);
 		secondpattern.setSequence(pat2);
@@ -68,4 +80,6 @@
 		sixthpattern.setSequence(pat14);
 		
+		seventhpattern.setSequence(pat17);
+		eigthpattern.setSequence(pat18);
 		
 		Match pattern = new Match();
@@ -80,5 +94,8 @@
 		pattern3.setFirstSequence(fifthpattern);
 		pattern3.setSecondSequence(sixthpattern);
-		
+
+		Match pattern4 = new Match();
+		pattern4.setFirstSequence(seventhpattern);
+		pattern4.setSecondSequence(eigthpattern);
 		
 		assertEquals(Integer.valueOf(2),ns.containsPattern(pattern).get(0));
@@ -129,4 +146,5 @@
 		
 		
+		assertEquals(0,ns3.containsPattern(pattern4).size());
 		
 	}
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java	(revision 1664)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java	(revision 1665)
@@ -45,5 +45,5 @@
 
 	//Recursive check if sequence contains pattern at position i
-	private boolean matches(int i, int[] p1, int[] p2 ,int ip1,int ip2) {
+	private boolean matches(int i, int[] p1, int[] p2 ,int ip1,int ip2,boolean jumped1,boolean jumped2) {
 		
 		if(p1.length==ip1) {
@@ -56,13 +56,20 @@
 			return false;
 		}
+		if((p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) && jumped1) {
+			return matches(i+1,p1,p2,ip1+1,ip2+2,false,false);
+		}
+		if((p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) && jumped2) {
+			return matches(i+1,p1,p2,ip1+2,ip2+1,false,false);
+		}
 		if(p1[ip1]==sequence[i]||p2[ip2]==sequence[i]) {
-			return matches(i+1,p1,p2,ip1+1,ip2+1);
+			return matches(i+1,p1,p2,ip1+1,ip2+1,false,false);
 		}
 		if(p1[ip1]==-1) {
-			return matches(i,p1,p2,ip1+1,ip2);
+			return matches(i,p1,p2,ip1+1,ip2,true,false);
 		}
 		if(p2[ip2]==-1) {
-			return matches(i,p1,p2,ip1,ip2+1);
+			return matches(i,p1,p2,ip1,ip2+1,false,true);
 		}
+	
 		return false;
 	}
@@ -76,5 +83,5 @@
 
 		while (i < sequence.length ) {
-			if(matches(i,pat1,pat2,0,0)) {
+			if(matches(i,pat1,pat2,0,0,false,false)) {
 				result.add(i);
 			}
