anchor.diff:  	magazine.forceMove(drop_location())
   	var/obj/item/ammo_box/magazine/old_mag = magazine
   	if (tac_load)
  -		insert_magazine(user, tac_load, FALSE)
  -		to_chat(user, "<span class='notice'>You perform a tactical reload on \the [src].")
  +		if (insert_magazine(user, tac_load, FALSE))
  +			to_chat(user, "<span class='notice'>You perform a tactical reload on \the [src].")
  +		else
  +			to_chat(user, "<span class='warning'>You dropped the old [magazine_wording], but the new one doesn't fit. How embarassing.</span>")
  +			magazine = null
  +	else
  +		magazine = null
   	user.put_in_hands(old_mag)
   	old_mag.update_icon()
  -	if (!tac_load)
  -		magazine = null
   	if (display_message)
   		to_chat(user, "<span class='notice'>You pull the [magazine_wording] out of \the [src].</span>")
   	update_icon()
  
positive.code: 	update_icon()
  
  /obj/item/gun/ballistic/proc/insert_magazine(mob/user, obj/item/ammo_box/magazine/AM, display_message = TRUE)
  	if(user.transferItemToLoc(AM, src))
  		magazine = AM
  		if (display_message)
  
negative.code: 		return
  	if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine))
  		var/obj/item/ammo_box/magazine/AM = A
  		if (!magazine)
  			insert_magazine(user, AM)
  		else
  			if (tac_reloads)
  				eject_magazine(user, FALSE, AM)
  			else
  				to_chat(user, "<span class='notice'>There's already a [magazine_wording] in \the [src].</span>")
  