         @loadDefaultComponentsForThangType itemThangType
         @loadThangsRequiredByThangType itemThangType
     @sessionDependenciesRegistered[session.id] = true
-    if _.size(@sessionDependenciesRegistered) is 2 and not (r for r in @worldNecessities when r?).length
+    if _.size(@sessionDependenciesRegistered) is 2 and @checkAllWorldNecessitiesRegisteredAndLoaded()
       @onWorldNecessitiesLoaded()
 
   consolidateFlagHistory: ->

    for thangType in thangNames.models
      @loadDefaultComponentsForThangType(thangType)
      @loadThangsRequiredByThangType(thangType)

  loadDefaultComponentsForThangType: (thangType) ->
    return unless components = thangType.get('components')

    return unless index >= 0
    @worldNecessities.splice(index, 1)
    @worldNecessities = (r for r in @worldNecessities when r?)
    @onWorldNecessitiesLoaded() if @checkAllWorldNecessitiesRegisteredAndLoaded()

  checkAllWorldNecessitiesRegisteredAndLoaded: ->
    return false unless _.filter(@worldNecessities).length is 0
    return false unless @thangNamesLoaded
    return false if @sessionDependenciesRegistered and not @sessionDependenciesRegistered[@session.id]
    return false if @opponentSession and not @sessionDependenciesRegistered[@opponentSession.id]
    true

  onWorldNecessitiesLoaded: ->
    @initWorld()
