Index: /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskInstanceTrie.java
===================================================================
--- /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskInstanceTrie.java	(revision 2129)
+++ /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskInstanceTrie.java	(revision 2130)
@@ -83,5 +83,4 @@
         
         Map<ITask, Counter> instanceCountMap = new HashMap<ITask, Counter>();
-        
         Console.traceln(Level.FINEST, "preparing training");
         int noOfTaskInstances = 0;
@@ -106,8 +105,10 @@
         
         Counter processedTaskInstances = new Counter();
-        int counterRecheckAt = noOfTaskInstances / 10; // recheck the maximum count after each
+        Counter currentSequenceMaxCount = new Counter();
+        int counterRecheckAt = noOfTaskInstances / 20; // recheck the maximum count after each
                                                        // 10% of processed task instances
         for (IUserSession session : userSessions) {
-            train(session, maxOrder, instanceCountMap, processedTaskInstances, counterRecheckAt);
+            train(session, maxOrder, instanceCountMap, processedTaskInstances,
+                  currentSequenceMaxCount, counterRecheckAt);
         }      
         
@@ -148,10 +149,9 @@
                        Map<ITask, Counter> taskInstanceCountMap,
                        Counter             processedTaskInstances,
+                       Counter             currentSequenceMaxCount,
                        int                 counterRecheckAt)
     {
         List<ITask> subsequence = new LinkedList<ITask>();
         
-        int sequenceMaxCount = 0;
-        
         for (ITaskInstance currentTaskInstance : userSession) {
             
@@ -159,9 +159,9 @@
             
             if (processedTaskInstances.count >= counterRecheckAt) {
-                sequenceMaxCount = getCurrentSequenceMaxCount();
+                currentSequenceMaxCount.count = getCurrentSequenceMaxCount();
                 processedTaskInstances.count = 0;
             }
             
-            if (occurrenceCount < sequenceMaxCount) {
+            if (occurrenceCount < currentSequenceMaxCount.count) {
                 // this task instance does not need to be considered, as it occurs not often enough
                 // to be part of a sequence, that occurs most often. Therefore train all remaining
