anchor.diff:  		sleep(1)
   		if (progress)
   			progbar.update(world.time - starttime)
  -
  -		if(!user || user.stat || user.weakened || user.stunned  || user.loc != Uloc)
  +		
  +		if(drifting && !user.inertia_dir)
  +				drifting = 0
  +				Uloc = user.loc
  +				
  +		if(!user || user.stat || user.weakened || user.stunned  || (!drifting && user.loc != Uloc)
   			. = 0
   			break
   
  
positive.code: 		Tloc = target.loc
  
  	var/atom/Uloc = user.loc
  
  	var/holding = user.get_active_hand()
  
  	var/holdingnull = 1 //User's hand started out empty, check for an empty hand
  
negative.code: 			break
  		if(uninterruptible)
  			continue
  		
  		if(drifting && !user.inertia_dir)
  				drifting = 0
  				user_loc = user.loc
  		
  		if((!drifting && user.loc != user_loc) || target.loc != target_loc || user.get_active_hand() != holding || user.incapacitated() || user.lying )
  			. = 0
  			break
  	if (progress)
  