diff --git a/comfort-glpk.cabal b/comfort-glpk.cabal
--- a/comfort-glpk.cabal
+++ b/comfort-glpk.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:    2.2
 Name:             comfort-glpk
-Version:          0.0
+Version:          0.0.0.1
 License:          BSD-3-Clause
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -33,7 +33,7 @@
   Alternatives: @hmatrix-glpk@, @glpk-hs@
 
 Source-Repository this
-  Tag:         0.0
+  Tag:         0.0.0.1
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/comfort-glpk/
 
@@ -43,7 +43,7 @@
 
 Library
   Build-Depends:
-    glpk-headers >=0.4.1 && <0.5,
+    glpk-headers >=0.4.1 && <0.6,
     comfort-array >=0.4 && <0.6,
     deepseq >=1.3 && <1.5,
     non-empty >=0.3.2 && <0.4,
diff --git a/src/Numeric/GLPK.hs b/src/Numeric/GLPK.hs
--- a/src/Numeric/GLPK.hs
+++ b/src/Numeric/GLPK.hs
@@ -240,16 +240,16 @@
    (Constraints ix -> (Direction, Objective sh) -> Solution sh) ->
    Constraints ix ->
    sh -> NonEmpty.T [] (Direction, [Term ix]) -> ([Double], Solution sh)
-solveMulti solver constrs sh (NonEmpty.Cons obj0 objs0) =
-   let go curObj ((dir,obj):objs) (Right (Optimal, (opt,_))) =
+solveMulti solver constrs0 sh (NonEmpty.Cons obj0 objs0) =
+   let go constrs curObj ((dir,obj):objs) (Right (Optimal, (opt,_))) =
          mapFst (opt:) $
-         go obj objs $
-         solver
-            ((curObj==.opt) : constrs)
+         let extConstrs = (curObj==.opt) : constrs in
+         go extConstrs obj objs $
+         solver extConstrs
             (dir, objectiveFromTerms sh obj)
-       go _ _ sol = ([], sol)
-   in go (snd obj0) objs0 $
-      solver constrs $ mapSnd (objectiveFromTerms sh) obj0
+       go _ _ _ sol = ([], sol)
+   in go constrs0 (snd obj0) objs0 $
+      solver constrs0 $ mapSnd (objectiveFromTerms sh) obj0
 
 
 {- |
