--- a/net/minecraft/server/TileEntityBanner.java
+++ b/net/minecraft/server/TileEntityBanner.java
@@ -20,6 +20,11 @@
 
             if (nbttagcompound.hasKey("Patterns")) {
                 this.patterns = (NBTTagList) nbttagcompound.getList("Patterns", 10).clone();
+                // CraftBukkit start
+                while (this.patterns.size() > 20) {
+                    this.patterns.remove(20);
+                }
+                // CraftBukkit end
             }
 
             if (nbttagcompound.hasKeyOfType("Base", 99)) {
@@ -54,6 +59,11 @@
         super.a(nbttagcompound);
         this.color = nbttagcompound.getInt("Base");
         this.patterns = nbttagcompound.getList("Patterns", 10);
+        // CraftBukkit start
+        while (this.patterns.size() > 20) {
+            this.patterns.remove(20);
+        }
+        // CraftBukkit end
         this.h = null;
         this.i = null;
         this.j = null;