diff --git a/doomsday/client/src/world/sectorcluster.cpp b/doomsday/client/src/world/sectorcluster.cpp index cfa1f9cd0a..511e75b699 100644 --- a/doomsday/client/src/world/sectorcluster.cpp +++ b/doomsday/client/src/world/sectorcluster.cpp @@ -624,15 +624,19 @@ DENG2_PIMPL(SectorCluster) initBoundaryInfoIfNeeded(); // Mark surfaces of the outer edge loop. - HEdge *base = boundaryInfo->uniqueOuterEdges.first(); - SectorClusterCirculator it(base); - do + /// @todo What about the special case of a cluster with no outer neighbors? -ds + if(!boundaryData->uniqueOuterEdges.isEmpty()) { - if(it->hasMapElement()) // BSP errors may fool the circulator wrt interior edges -ds + HEdge *base = boundaryInfo->uniqueOuterEdges.first(); + SectorClusterCirculator it(base); + do { - markAllSurfacesForDecorationUpdate(it->mapElementAs().line()); - } - } while(&it.next() != base); + if(it->hasMapElement()) // BSP errors may fool the circulator wrt interior edges -ds + { + markAllSurfacesForDecorationUpdate(it->mapElementAs().line()); + } + } while(&it.next() != base); + } // Mark surfaces of the inner edge loop(s). foreach(HEdge *base, boundaryInfo->uniqueInnerEdges)