anchor.diff:  				#endif
   				I.no_respect_force++
   
  -				SSgarbage.PreQueue(D)
  -			if (QDEL_HINT_HARDDEL)		//qdel should assume this object won't gc, and queue a hard delete using a hard reference to save time from the locate()
  -				SSgarbage.HardQueue(D)
  +				SSgarbage.Queue(D)
  +			if (QDEL_HINT_HARDDEL)		//qdel should assume this object won't gc, and queue a hard delete
  +				SSgarbage.Queue(D, GC_QUEUE_HARDDELETE)
   			if (QDEL_HINT_HARDDEL_NOW)	//qdel should assume this object won't gc, and hard del it post haste.
   				SSgarbage.HardDelete(D)
   			if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion.
  -				SSgarbage.PreQueue(D)
  +				SSgarbage.Queue(D)
   				#ifdef TESTING
   				D.find_references()
   				#endif
   			if (QDEL_HINT_IFFAIL_FINDREFERENCE)
  -				SSgarbage.PreQueue(D)
  +				SSgarbage.Queue(D)
   				#ifdef TESTING
   				SSgarbage.reference_find_on_fail[REF(D)] = TRUE
   				#endif
  
positive.code: 					testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
  				#endif
  				I.no_hint++
  				SSgarbage.PreQueue(D)
  	else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
  		CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
  
  
negative.code: 		log_game("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete)")
  		message_admins("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete).")
  		postpone(time)
  
  /datum/controller/subsystem/garbage/Recover()
  	if (istype(SSgarbage.queues))
  