diff --git a/Control/Parallel/Eden/Workpool.hs b/Control/Parallel/Eden/Workpool.hs
--- a/Control/Parallel/Eden/Workpool.hs
+++ b/Control/Parallel/Eden/Workpool.hs
@@ -141,12 +141,14 @@
                       -> [Int] -- ^ request stream (worker IDs ranging from 0 to n-1)
                       -> [t]   -- ^ task list
                      -> ([[t]],[[Int]]) -- ^(task positions in original list, task distribution), each inner list for one worker.
-distributeWithPos np reqs tasks 
-   = unzip [unzip (taskList reqs tasks [0..] n) | n<-[0..np-1]]
+distributeWithPos np reqs tasks
+   = lazyunzip [unzip (taskList reqs tasks [0..] n) | n<-[0..np-1]]
     where taskList (r:rs) (t:ts) (tag:tags) pe
                         | pe == r    = (t,tag):(taskList rs ts tags pe)
                         | otherwise  =  taskList rs ts tags pe
           taskList _    _    _    _  = []
+
+          lazyunzip = foldr (\(~(a,b)) ~(as,bs) -> (a:as,b:bs)) ([],[])
 
 
 -- | Sorted workpool (results in the order of the tasks).
diff --git a/edenskel.cabal b/edenskel.cabal
--- a/edenskel.cabal
+++ b/edenskel.cabal
@@ -1,5 +1,5 @@
 name:		edenskel
-version:	2.0.0.1
+version:	2.0.0.2
 license:	BSD3
 license-file:	LICENSE
 maintainer:	eden@mathematik.uni-marburg.de
