--- a/net/minecraft/server/TileEntityBanner.java
+++ b/net/minecraft/server/TileEntityBanner.java
@@ -23,6 +23,11 @@
 
         if (nbttagcompound != null && nbttagcompound.hasKeyOfType("Patterns", 9)) {
             this.patterns = nbttagcompound.getList("Patterns", 10).d();
+            // CraftBukkit start
+            while (this.patterns.size() > 20) {
+                this.patterns.remove(20);
+            }
+            // CraftBukkit end
         }
 
         this.color = flag ? d(itemstack) : ItemBanner.c(itemstack);
@@ -67,6 +72,11 @@
 
         this.color = EnumColor.fromInvColorIndex(nbttagcompound.getInt("Base"));
         this.patterns = nbttagcompound.getList("Patterns", 10);
+        // CraftBukkit start
+        while (this.patterns.size() > 20) {
+            this.patterns.remove(20);
+        }
+        // CraftBukkit end
         this.i = null;
         this.j = null;
         this.k = null;