     
     # What would be the game time now if we simulated for this duration?
     simulationEndGameTime = gameStateDocument.state.gameTime + elapsedGameTime
-    
+
+    # Just update game time if no events are pending.
+    unless gameStateDocument.events.length
+      @_updateGameTime gameStateDocument, simulationEndGameTime
+      return
+
     # Keep processing events that happen before the end time.
     eventsProcessedCount = 0
 

        readOnlyState: gameStateDocument.readOnlyState
        events: gameStateDocument.events

# Initialize on startup.
Document.startup ->
  # Simulate game state every 10 minutes.

  @simulateGameState: (gameStateDocument) ->
    console.log "Simulating game state", gameStateDocument?._id if LOI.debug

    # Calculate how much time has passed since game state was updated.
    elapsedRealTime = Date.now() - gameStateDocument.stateLastUpdatedAt.getTime()
    
