diff --git a/src/main/java/org/olat/course/assessment/AssessmentModule.java b/src/main/java/org/olat/course/assessment/AssessmentModule.java
index d8cd61e0c36e8ef29f4287f38dd34f251a797876..6fae7200ec80a25f85553f23def8cef0917ed4c6 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModule.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModule.java
@@ -29,10 +29,8 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadFactory;
 
+import org.olat.core.commons.taskExecutor.TaskExecutorManager;
 import org.olat.core.configuration.Destroyable;
 import org.olat.core.configuration.Initializable;
 import org.olat.core.gui.control.Event;
@@ -55,12 +53,8 @@ import org.olat.course.editor.PublishEvent;
  * @author patrickb
  */
 public class AssessmentModule implements Initializable, Destroyable, GenericEventListener {
-	private static int DEFAULT_POOLSIZE = 3;
-	/*
-	 * worker pool for updating effciency statements
-	 */
-	private ExecutorService updateESPool;
-	private List upcomingWork;
+
+	private List<Long> upcomingWork;
 	private CourseModule courseModule;
 	
 	/**
@@ -74,12 +68,7 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 	 * @see org.olat.core.configuration.OLATModule#init(com.anthonyeden.lib.config.Configuration)
 	 */
 	public void init() {
-		/*
-		 * init Worker pool
-		 */
-		ThreadFactory4UpdateEfficiencyWorker th4uew = new ThreadFactory4UpdateEfficiencyWorker();
-		updateESPool = Executors.newFixedThreadPool(DEFAULT_POOLSIZE, th4uew);
-		upcomingWork = new ArrayList();
+		upcomingWork = new ArrayList<Long>();
 		/*
 		 * always last step, register for course events
 		 */
@@ -101,8 +90,6 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 		/*
 		 * no other code before here!
 		 */
-		//wait for all work being done
-		updateESPool.shutdown();
 		//check that working queue is empty
 		if(upcomingWork.size()>0){
 			//hanging work!!
@@ -137,7 +124,7 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 				if (recalc) {
 					ICourse pubCourse = CourseFactory.loadCourse(pe.getPublishedCourseResId());
 					UpdateEfficiencyStatementsWorker worker = new UpdateEfficiencyStatementsWorker(pubCourse);
-					updateESPool.execute(worker);
+					TaskExecutorManager.getInstance().runTask(worker);
 				}
 			}
 		}
@@ -180,21 +167,4 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 		}
 		return;
 	}
-	
-	
-	public class ThreadFactory4UpdateEfficiencyWorker implements ThreadFactory{
-
-		/**
-		 * @see edu.emory.mathcs.backport.java.util.concurrent.ThreadFactory#newThread(java.lang.Runnable)
-		 */
-		public Thread newThread(Runnable r) {
-			Thread th = new Thread(r);
-			th.setName("UpdateEfficiencyStatements");
-			//kill this thread if OLAT is no longer active
-			th.setDaemon(true);
-			return th;
-		}
-		
-	}
-
 }