diff --git a/src/storm/storage/jani/Edge.cpp b/src/storm/storage/jani/Edge.cpp
index 7efa96926..18fb35f4f 100644
--- a/src/storm/storage/jani/Edge.cpp
+++ b/src/storm/storage/jani/Edge.cpp
@@ -107,6 +107,7 @@ namespace storm {
             if(usesAssignmentLevels()) {
                 templateEdge = std::make_shared<TemplateEdge>(templateEdge->simplifyIndexedAssignments(!hasSilentAction(), localVars));
                 std::vector<EdgeDestination> newdestinations;
+                assert(templateEdge->getNumberOfDestinations() == destinations.size());
                 for (uint64_t i = 0; i < templateEdge->getNumberOfDestinations(); ++i) {
                     auto const& templateDestination = templateEdge->getDestination(i);
                     newdestinations.emplace_back(destinations[i].getLocationIndex(), destinations[i].getProbability(), templateDestination);
diff --git a/src/storm/storage/jani/OrderedAssignments.cpp b/src/storm/storage/jani/OrderedAssignments.cpp
index b9ea30beb..99eb415a8 100644
--- a/src/storm/storage/jani/OrderedAssignments.cpp
+++ b/src/storm/storage/jani/OrderedAssignments.cpp
@@ -74,7 +74,7 @@ namespace storm {
             if (allAssignments.empty()) {
                 return false;
             }
-            return getLowestLevel() != getHighestLevel();
+            return getLowestLevel() != 0 || getHighestLevel() != 0;
         }
         
         bool OrderedAssignments::empty() const {
diff --git a/src/storm/storage/jani/TemplateEdge.cpp b/src/storm/storage/jani/TemplateEdge.cpp
index a788685f8..959b7b7d1 100644
--- a/src/storm/storage/jani/TemplateEdge.cpp
+++ b/src/storm/storage/jani/TemplateEdge.cpp
@@ -133,6 +133,9 @@ namespace storm {
         }
         
         bool TemplateEdge::usesAssignmentLevels() const {
+            if (assignments.hasMultipleLevels()) {
+                return true;
+            }
             for (auto const& destination : this->getDestinations()) {
                 if (destination.usesAssignmentLevels()) {
                     return true;