diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 96e8a2cf2d..1f3f73bc41 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -316,24 +316,31 @@
clown = 1
if(istype(P, /obj/item/weapon/paper))
- var/obj/item/weapon/paper_bundle/B = new(usr.loc)
+ var/obj/item/weapon/paper_bundle/B = new(src.loc)
B.icon_state = icon_state
+ B.overlays = overlays
+ B:add_item(icon_state)
if (name != "paper")
B.name = name
- usr.drop_item()
- B.loc = usr
- if (usr.hand)
- usr.l_hand = B
+ else if (P.name != "paper")
+ B.name = P.name
+ user.drop_from_inventory(P)
+ if (user.r_hand == src)
+ user.drop_from_inventory(src)
+ B.loc = user
+ user.r_hand = B
B.layer = 20
- else
- usr.r_hand = B
+ else if (user.l_hand == src)
+ user.drop_from_inventory(src)
+ B.loc = user
+ user.l_hand = B
B.layer = 20
- if(istype(usr,/mob/living/carbon/human))
- usr:update_inv_l_hand()
- usr:update_inv_r_hand()
- del(P)
- del(src)
-
+ if(istype(user,/mob/living/carbon/human))
+ user:update_inv_l_hand()
+ user:update_inv_r_hand()
+ user << "You clip the papers together to create a bundle."
+ P.loc = B
+ src.loc = B
if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
if ( istype(P, /obj/item/weapon/pen/robopen) && P:mode == 2 )
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 70a98ee52c..e330b3b355 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -3,10 +3,67 @@
gender = PLURAL
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "paper"
+ item_state = "paper"
throwforce = 0
w_class = 1.0
throw_range = 2
throw_speed = 1
layer = 4
pressure_resistance = 1
- attack_verb = list("slaps")
\ No newline at end of file
+ attack_verb = list("bapped")
+ var/amount = 0 //Amount of items clipped to the paper
+ var/page = 0
+
+
+/obj/item/weapon/paper_bundle/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ ..()
+ if(istype(W, /obj/item/weapon/paper))
+ var/obj/item/weapon/paper/P = W
+ src.add_item(P.icon_state)
+ user << "You add [(P.name == "paper") ? "the paper" : P.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name]."
+ user.drop_from_inventory(P)
+ P.loc = src
+ if(istype(user,/mob/living/carbon/human))
+ user:update_inv_l_hand()
+ user:update_inv_r_hand()
+ add_fingerprint(usr)
+ return
+
+
+/obj/item/weapon/paper_bundle/verb/rename()
+ set name = "Rename bundle"
+ set category = "Object"
+ set src in usr
+
+ var/n_name = copytext(sanitize(input(usr, "What would you like to label the bundle?", "Bundle Labelling", null) as text), 1, MAX_NAME_LEN)
+ if((loc == usr && usr.stat == 0))
+ name = "[(n_name ? text("[n_name]") : "paper")]"
+ add_fingerprint(usr)
+ return
+
+
+/obj/item/weapon/paper_bundle/verb/remove_all()
+ set name = "Loose bundle"
+ set category = "Object"
+ set src in usr
+
+ usr << "You loosen the bundle."
+ for(var/obj/O in src)
+ O.loc = usr.loc
+ usr.drop_from_inventory(src)
+ if(istype(usr,/mob/living/carbon/human))
+ usr:update_inv_l_hand()
+ usr:update_inv_r_hand()
+ del(src)
+ return
+
+
+/obj/item/weapon/paper_bundle/proc/add_item(state)
+ amount++
+ var/image/img = image('icons/obj/bureaucracy.dmi', state)
+ img.pixel_x -= min(1*amount, 2)
+ img.pixel_y -= min(1*amount, 2)
+ pixel_x = min(0.5*amount, 1)
+ pixel_y = min( 1*amount, 2)
+ underlays += img
+ return
\ No newline at end of file