diff --git a/dumux/material/constraintsolvers/ncpflash.hh b/dumux/material/constraintsolvers/ncpflash.hh
index 2b0bf2e50e421803263bf6375a4cd799fbdd12ac..15358ab120817a857c94401b7db28de6cba4dc67 100644
--- a/dumux/material/constraintsolvers/ncpflash.hh
+++ b/dumux/material/constraintsolvers/ncpflash.hh
@@ -443,11 +443,19 @@ protected:
             if (value < 0)
                 fluidState.setPressure(phaseIdx, 0.0);
 
+            bool allMoleFractionsAreZero = true;
             for (int compIdx = 0; compIdx < numComponents; ++compIdx) {
                 value = fluidState.moleFraction(phaseIdx, compIdx);
-                if (value < 0)
+                if (value > 0)
+                    allMoleFractionsAreZero = false;
+                else if (value < 0)
                     fluidState.setMoleFraction(phaseIdx, compIdx, 0.0);
             }
+
+            // set at least one mole fraction to a positive value
+            // to prevent breakdown of the linear solver in completeFluidState_
+            if (allMoleFractionsAreZero)
+                fluidState.setMoleFraction(phaseIdx, /*compIdx=*/0, 1e-10);
         }
 
         // last saturation