anchor.diff:  
   	attack_hand(mob/user as mob)
   		if(stat & BROKEN)
  +			spawn()
  +			if(!(user.client in has_sprites))	//yes, it's in three places, so they get downloaded even when they arent going to be shown, because they could be in the future
  +				spawn()
  +					has_sprites += user.client
  +					for(var/i = 1 to MAX_PILL_SPRITE)
  +						usr << browse_rsc(icon('chemical.dmi', "pill" + num2text(i)), "pill[i].png")
  +					for(var/i = 1 to MAX_BOTTLE_SPRITE)
  +						usr << browse_rsc(icon('chemical.dmi', "bottle" + num2text(i)), "bottle[i].png")
   			return
   		user.machine = src
   		var/dat = ""
   		if(!beaker)
   			dat = "Please insert beaker.<BR>"
   			dat += "<A href='?src=\ref[src];close=1'>Close</A>"
  -		else
  +			if(!(user.client in has_sprites))
  +				spawn()
  +					has_sprites += user.client
  +					for(var/i = 1 to MAX_PILL_SPRITE)
  +						usr << browse_rsc(icon('chemical.dmi', "pill" + num2text(i)), "pill[i].png")
  +					for(var/i = 1 to MAX_BOTTLE_SPRITE)
  +						usr << browse_rsc(icon('chemical.dmi', "bottle" + num2text(i)), "bottle[i].png")
  +		else
  +			if(!(user.client in has_sprites))
  +				has_sprites += user.client
  +				for(var/i = 1 to MAX_PILL_SPRITE)
  +					usr << browse_rsc(icon('chemical.dmi', "pill" + num2text(i)), "pill[i].png")
  +				for(var/i = 1 to MAX_BOTTLE_SPRITE)
  +					usr << browse_rsc(icon('chemical.dmi', "bottle" + num2text(i)), "bottle[i].png")
   			var/datum/reagents/R = beaker:reagents
   			dat += "<A href='?src=\ref[src];eject=1'>Eject beaker and Clear Buffer</A><BR><BR>"
   			if(!R.total_volume)
  
positive.code: 			else
  				dat += "Empty<BR>"
  			if(!condi)
  				usr << browse_rsc(icon('chemical.dmi', "pill" + pillsprite), "pill.png")
  				dat += "<HR><BR><A href='?src=\ref[src];createpill=1'>Create pill (50 units max)</A><a href=\"?src=\ref[src]&change_pill=1\"><img src=\"pill.png\" /></a><BR>"
  				usr << browse_rsc(icon('chemical.dmi', "bottle" + bottlesprite), "bottle.png")
  				dat += "<A href='?src=\ref[src];createbottle=1'>Create bottle (30 units max)</A><a href=\"?src=\ref[src]&change_bottle=1\"><img src=\"bottle.png\" /></a>"
  			else
  				dat += "<A href='?src=\ref[src];createbottle=1'>Create bottle (50 units max)</A>"
  		if(!condi)
  
negative.code: 			#define MAX_PILL_SPRITE 20 //max icon state of the pill sprites
  			var/dat = "<table>"
  			for(var/i = 1 to MAX_PILL_SPRITE)
  				dat += "<tr><td><a href=\"?src=\ref[src]&pill_sprite=[i]\"><img src=\"pill[i].png\" /></a></td></tr>"
  			dat += "</table>"
  			usr << browse(dat, "window=chem_master")
  