anchor.diff:  	SSpersistence.painting_frames -= src
   
   /obj/structure/sign/painting/attackby(obj/item/I, mob/user, params)
  -	if(!C && istype(I, /obj/item/canvas))
  +	if(!current_canvas && istype(I, /obj/item/canvas))
   		frame_canvas(user,I)
  -	else if(C && C.painting_name == initial(C.painting_name) && istype(I,/obj/item/pen))
  +	else if(current_canvas && current_canvas.painting_name == initial(current_canvas.painting_name) && istype(I,/obj/item/pen))
   		try_rename(user)
   	else
   		return ..()
   
   /obj/structure/sign/painting/examine(mob/user)
   	. = ..()
  -	if(C)
  -		C.ui_interact(user)
  +	if(persistence_id)
  +		. += "<span class='notice'>Any painting placed here will be archived at the end of the shift.</span>"
  +	if(current_canvas)
  +		current_canvas.ui_interact(user)
  +		. += "<span class='notice'>Use wirecutters to remove the painting.</span>"
   
   /obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I)
   	. = ..()
  -	if(C)
  -		C.forceMove(drop_location())
  -		C = null
  +	if(current_canvas)
  +		current_canvas.forceMove(drop_location())
  +		current_canvas = null
   		to_chat(user, "<span class='notice'>You remove the painting from the frame.</span>")
   		update_icon()
  +		update_name_and_desc()
   		return TRUE
   
   /obj/structure/sign/painting/proc/frame_canvas(mob/user,obj/item/canvas/new_canvas)
   	if(user.transferItemToLoc(new_canvas,src))
  -		C = new_canvas
  -		if(!C.finalized)
  -			C.finalize(user)
  -		to_chat(user,"<span class='notice'>You frame [C].</span>")
  +		current_canvas = new_canvas
  +		if(!current_canvas.finalized)
  +			current_canvas.finalize(user)
  +		to_chat(user,"<span class='notice'>You frame [current_canvas].</span>")
   	update_icon()
  +	update_name_and_desc()
   
   /obj/structure/sign/painting/proc/try_rename(mob/user)
  -	if(C.painting_name == initial(C.painting_name))
  -		C.try_rename(user)
  +	if(current_canvas.painting_name == initial(current_canvas.painting_name))
  +		current_canvas.try_rename(user)
  +
  +/obj/structure/sign/painting/proc/update_name_and_desc()
  +	if(current_canvas)
  +		name = "painting - [current_canvas.painting_name]"
  +		desc = desc_with_canvas
  +	else
  +		name = initial(name)
  +		desc = initial(desc)
   
   /obj/structure/sign/painting/update_icon_state()
   	. = ..()
  -	if(C?.generated_icon)
  +	if(current_canvas?.generated_icon)
   		icon_state = "frame-overlay"
   	else
   		icon_state = "frame-empty"
  
positive.code: 	if(!I)
  		return
  	if(istype(I, /obj/item/toy/crayon))
  		var/obj/item/toy/crayon/C = I
  		return C.paint_color
  	else if(istype(I, /obj/item/pen))
  		var/obj/item/pen/P = I
  		switch(P.colour)
  
negative.code: 	new_canvas.finalized = TRUE
  	new_canvas.painting_name = title
  	new_canvas.author_ckey = author
  	new_canvas.name = "painting - [title]"
  	current_canvas = new_canvas
  	update_icon()
  	update_name_and_desc()
  
  /obj/structure/sign/painting/proc/save_persistent()
  	if(!persistence_id || !current_canvas)
  		return
  	if(sanitize_filename(persistence_id) != persistence_id)
  		stack_trace("Invalid persistence_id - [persistence_id]")
  		return
  	if(!current_canvas.painting_name)
  		current_canvas.painting_name = "Untitled Artwork"
  	var/data = current_canvas.get_data_string()
  	var/md5 = md5(lowertext(data))
  	var/list/current = SSpersistence.paintings[persistence_id]
  	if(!current)
  