diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 2828a23c363..57eeea65899 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -222,11 +222,10 @@
process_fire(user, user, FALSE, params, shot_leg)
user.dropItemToGround(src, TRUE)
return
-
- if(weapon_weight == WEAPON_HEAVY && user.get_inactive_held_item())
- to_chat(user, "You need both hands free to fire \the [src]!")
+ var/obj/item/bodypart/other_hand = user.has_hand_for_held_index(user.get_inactive_hand_index()) //returns non-disabled inactive hands
+ if(weapon_weight == WEAPON_HEAVY && (user.get_inactive_held_item() || !other_hand))
+ to_chat(user, "You need two hands to fire \the [src]!")
return
-
//DUAL (or more!) WIELDING
var/bonus_spread = 0
var/loop_counter = 0