diff --git a/src/counterexamples/MinimalLabelSetGenerator.h b/src/counterexamples/MinimalLabelSetGenerator.h
index 5ff42b59b..96e197df1 100644
--- a/src/counterexamples/MinimalLabelSetGenerator.h
+++ b/src/counterexamples/MinimalLabelSetGenerator.h
@@ -39,9 +39,10 @@ namespace storm {
                 
                 // (2) Identify relevant and problematic states.
                 storm::storage::SparseMatrix<bool> backwardTransitions = labeledMdp.getBackwardTransitions();
-                storm::storage::BitVector relevantStates = storm::utility::graph::performProbGreater0A(labeledMdp, backwardTransitions, phiStates, psiStates);
-                relevantStates.complement();
+                storm::storage::BitVector relevantStates = storm::utility::graph::performProbGreater0E(labeledMdp, backwardTransitions, phiStates, psiStates);
+                relevantStates &= ~psiStates;
                 storm::storage::BitVector problematicStates = storm::utility::graph::performProbGreater0E(labeledMdp, backwardTransitions, phiStates, psiStates);
+                problematicStates.complement();
                 problematicStates &= relevantStates;
                 
                 // (3) Determine set of relevant labels.
@@ -52,7 +53,7 @@ namespace storm {
                 // Now traverse all choices of all relevant states and check whether there is a relevant target state.
                 // If so, the associated labels become relevant.
                 for (auto state : relevantStates) {
-                    for (uint_fast64_t row = nondeterministicChoiceIndices[state]; row < nondeterministicChoiceIndices[state - 1]; ++row) {
+                    for (uint_fast64_t row = nondeterministicChoiceIndices[state]; row < nondeterministicChoiceIndices[state + 1]; ++row) {
                         for (typename storm::storage::SparseMatrix<T>::ConstIndexIterator successorIt = transitionMatrix.constColumnIteratorBegin(row); successorIt != transitionMatrix.constColumnIteratorEnd(row); ++successorIt) {
                             // If there is a relevant successor, we need to add the labels of the current choice.
                             if (relevantStates.get(*successorIt)) {
@@ -63,21 +64,33 @@ namespace storm {
                         }
                     }
                 }
-                std::cout << "relevant labels: " << std::endl;
-                for (auto const& label : relevantLabels) {
-                    std::cout << "label: " << label << std::endl;
-                }
-                
-                return relevantLabels;
+                LOG4CPLUS_INFO(logger, "Found " << relevantLabels.size() << " relevant labels.");
                 
                 // (3) Encode resulting system as MILP problem.
-                //  (3.1) Initialize MILP solver.
+                //  (3.1) Initialize MILP solver and model.
+                // GRBEnv env;
+                // GRBModel model = GRBModel(env);
+                
                 //  (3.2) Create variables.
+                
+                // Create variables for involved labels.
+                std::vector<std::pair<uint_fast64_t, GRBVar>> labelVariables;
+                std::stringstream variableNameBuffer;
+                for (auto const& label : relevantLabels) {
+                    variableNameBuffer.clear();
+                    variableNameBuffer << "label" << label;
+                    // labelVariables.emplace_back(label, model.addVar(0.0, 1.0, 0.0, GRB_BINARY, variableNameBuffer.str()));
+                }
+                
                 //  (3.3) Construct objective function.
                 //  (3.4) Construct constraint system.
                 // (4) Read off result from MILP variables.
                 // (5) Potentially verify whether the resulting system exceeds the given threshold.
                 // (6) Return result.
+                
+                // FIXME: Return fake result for the time being.
+                return relevantLabels;
+                
 #else
                 throw storm::exceptions::NotImplementedException() << "This functionality is unavailable if StoRM is compiled without support for Gurobi.";
 #endif