diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index e22b3b25445..d4cafa847fd 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -1,14 +1,17 @@
/mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked = 0)
if(!skipcatch)
- if(in_throw_mode && !get_active_hand()) //empty active hand and we're in throw mode
- if(canmove && !restrained())
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(isturf(I.loc))
- put_in_active_hand(I)
- visible_message("[src] catches [I]!")
- throw_mode_off()
- return 1
+ if(in_throw_mode && canmove && !restrained()) //Makes sure player is in throw mode
+ if(!istype(AM,/obj/item) || !isturf(AM.loc))
+ return FALSE
+ if(get_active_hand())
+ return FALSE
+ if(istype(AM, /obj/item/twohanded))
+ if(get_inactive_hand())
+ return FALSE
+ put_in_active_hand(AM)
+ visible_message("[src] catches [AM]!")
+ throw_mode_off()
+ return TRUE
..()
/mob/living/carbon/water_act(volume, temperature, source)