diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 1bb9ec062a9..eca554dcb0c 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -307,18 +307,28 @@
if (M == src)
M = null
- if (M)
- if(src.lying || src.weakened)
+ if(M)
+ if(lying || weakened)
message = "[src] flops and flails around on the floor."
else
message = "[src] flips in [M]'s general direction."
- src.SpinAnimation(5,1)
+ SpinAnimation(5,1)
else
- if(src.lying || src.weakened)
+ if(lying || weakened)
message = "[src] flops and flails around on the floor."
else
- message = "[src] does a flip!"
- src.SpinAnimation(5,1)
+ var/obj/item/weapon/grab/G = get_active_hand()
+ if(G && G.affecting)
+ var/turf/oldloc = loc
+ var/turf/newloc = G.affecting.loc
+ if(isturf(oldloc) && isturf(newloc))
+ SpinAnimation(5,1)
+ forceMove(newloc)
+ G.affecting.forceMove(oldloc)
+ message = "[src] flips over [G.affecting]!"
+ else
+ message = "[src] does a flip!"
+ SpinAnimation(5,1)
if ("aflap", "aflaps")
if (!src.restrained())