diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 75e6306715..0e51c54a36 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -549,6 +549,16 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
     }
 
     public void a(Packet16BlockItemSwitch packet16blockitemswitch) {
+        if (packet16blockitemswitch.a < 0 || packet16blockitemswitch.a > 8) {
+            server.getLogger().severe(
+                "Player " + getPlayer().getName() + "/" + getPlayer().getAddress().toString() +
+                " just send an invalid ItemInHandIndex: " + packet16blockitemswitch.a +
+                " - very likely a crashing exploit attempt. Recommend ban, and sending a package of joy their way."
+            );
+            this.d.f.a(new Packet1Login("", "", 0, 0, (byte)0));
+            return;
+        }
+
         // CraftBukkit start
         PlayerItemHeldEvent event = new PlayerItemHeldEvent(Type.PLAYER_ITEM_HELD, getPlayer(), e.inventory.c, packet16blockitemswitch.a);
         server.getPluginManager().callEvent(event);