anchor.diff:  								if(SS.paused)
   									SS.next_fire = world.time //run it next tick if we can, but don't priority queue it, as we are a dynamic wait subsystem
   								else //not paused, it ran all the way thru, normal wait time
  -									SS.next_fire = world.time + SS.wait
  +									SS.next_fire = SS.last_fire + SS.wait //we use last_fire so that its next fire is based off when it started this fire, not when it finished.
   							else
   								if(!paused)
   									SS.next_fire += SS.wait
  
positive.code: 							ran_subsystems = 1
  							timer = world.timeofday
  							last_type_processed = SS.type
  							SS.last_fire = world.time
  							var/tick_usage = world.tick_usage
  							SS.fire(paused) // Fire the subsystem
  
  
negative.code: 						else
  							priority_queue -= SS
  					if(SS.can_fire > 0)
  						if(priorityrunning || ((SS.next_fire <= world.time) && (SS.last_fire + (SS.wait * 0.75) <= world.time || SS.paused)))
  							if(!priorityrunning && (world.tick_usage + SS.tick_usage > TICK_LIMIT_TO_RUN) && (SS.last_fire + (SS.wait*1.25) > world.time))
  								if(!SS.dynamic_wait)
  									priority_queue += SS
  