diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 95988003125..2253e049a5a 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -68,14 +68,14 @@
//The topmost paper. I don't think there's any way to organise contents in byond, so this is what we're stuck with. -Pete
if(toppaper)
var/obj/item/weapon/paper/P = toppaper
- dat += "Write Remove - [P.name]
"
+ dat += "Write Remove Rename - [P.name]
"
for(var/obj/item/weapon/paper/P in src)
if(P==toppaper)
continue
- dat += "Remove - [P.name]
"
+ dat += "Remove Rename - [P.name]
"
for(var/obj/item/weapon/photo/Ph in src)
- dat += "Remove - [Ph.name]
"
+ dat += "Remove Rename - [Ph.name]
"
user << browse(dat, "window=clipboard")
onclose(user, "clipboard")
@@ -129,6 +129,18 @@
toppaper = newtop
else
toppaper = null
+
+ else if(href_list["rename"])
+ var/obj/item/weapon/O = locate(href_list["rename"])
+
+ if(O && (O.loc == src))
+ if(istype(O, /obj/item/weapon/paper))
+ var/obj/item/weapon/paper/to_rename = O
+ to_rename.rename()
+
+ else if(istype(O, /obj/item/weapon/photo))
+ var/obj/item/weapon/photo/to_rename = O
+ to_rename.rename()
else if(href_list["read"])
var/obj/item/weapon/paper/P = locate(href_list["read"])
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 9c9fe2e639e..b578e33354c 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -87,12 +87,15 @@
usr << "You cut yourself on the paper."
return
var/n_name = sanitizeSafe(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text, MAX_NAME_LEN)
- if((loc == usr && usr.stat == 0))
- name = "[(n_name ? text("[n_name]") : initial(name))]"
- if(name != "paper")
- desc = "This is a paper titled '" + name + "'."
- add_fingerprint(usr)
- return
+
+ // We check loc one level up, so we can rename in clipboards and such. See also: /obj/item/weapon/photo/rename()
+ if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == 0 && n_name)
+ name = n_name
+ if(n_name != "paper")
+ desc = "This is a paper titled '" + name + "'."
+
+ add_fingerprint(usr)
+ return
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
user.examinate(src)