      {
 +        boolean doRegularComputation = true;
 +        for (ItemStack stack : inventory.armorInventory) {
-+            if (stack.getItem() instanceof ISpecialArmor) {
++            if (stack != null && stack.getItem() instanceof ISpecialArmor) {
 +                ISpecialArmor armor = (ISpecialArmor) stack.getItem();
 +                
 +                i = armor.adjustArmorDamage(i);

+        blocksEffectiveAgainst = Arrays.copyOf(blocksEffectiveAgainst,
+                blocksEffectiveAgainst.length + 1);
+        
+        blocksEffectiveAgainst [blocksEffectiveAgainst.length + 1] = block;
+    }
 }
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/PlayerController.java ../src_work/minecraft/net/minecraft/src/PlayerController.java

     {
+        boolean doRegularComputation = true;
+        for (ItemStack stack : inventory.armorInventory) {
+            if (stack != null && stack.getItem() instanceof ISpecialArmor) {
+                ISpecialArmor armor = (ISpecialArmor) stack.getItem();
+                
+                i = armor.adjustArmorDamage(i);
