anchor.diff:  
   	else if(href_list["newline"])
   		var/newline = html_encode(input("Enter your line: ", instrumentObj.name) as text|null)
  -		if(!newline || !in_range(instrumentObj, usr))
  +		if(!newline || !usr.canUseTopic(instrumentObj, BE_CLOSE, FALSE, NO_TK))
   			return
   		if(lines.len > MUSIC_MAXLINES)
   			return
  
positive.code: 		var/t = ""
  		do
  			t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", name), t)  as message)
  			if(!in_range(instrumentObj, usr))
  				return
  
  			if(lentext(t) >= MUSIC_MAXLINES * MUSIC_MAXLINECHARS)
  				var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no")
  				if(cont == "no")
  					break
  		while(lentext(t) > MUSIC_MAXLINES * MUSIC_MAXLINECHARS)
  
negative.code: 		updateDialog(usr)		// make sure updates when complete
  
  /datum/song/Topic(href, href_list)
  	if(!usr.canUseTopic(instrumentObj, BE_CLOSE, FALSE, NO_TK))
  		usr << browse(null, "window=instrument")
  		usr.unset_machine()
  		return
  