diff --git a/CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch b/CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch
index 79732653b..bfcdf5855 100644
--- a/CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch
+++ b/CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch
@@ -1,4 +1,4 @@
-From 0e03c1c520dd6f1085cdcaeca6ec2c3b15db0c95 Mon Sep 17 00:00:00 2001
+From 86ffba1e26fe732582e39d6f47274d35685793b7 Mon Sep 17 00:00:00 2001
 From: Dmck2b <dmck2b+github@gmail.com>
 Date: Mon, 20 Jan 2014 20:18:23 +0000
 Subject: [PATCH] Allow toggling of ZombiePigmen spawning in portal blocks
@@ -18,10 +18,10 @@ index 030f4e9..4dc40eb 100644
  
              BlockPosition blockposition1;
 diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
-index 891812a..1971dbf 100644
+index 20800ed..a684d68 100644
 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
 +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
-@@ -259,4 +259,11 @@ public class SpigotWorldConfig
+@@ -261,4 +261,11 @@ public class SpigotWorldConfig
          nerfSpawnerMobs = getBoolean( "nerf-spawner-mobs", false );
          log( "Nerfing mobs spawned from spawners: " + nerfSpawnerMobs );
      }
@@ -34,5 +34,5 @@ index 891812a..1971dbf 100644
 +    }
  }
 -- 
-2.1.4
+1.9.1
 
diff --git a/CraftBukkit-Patches/0155-map-decoration-fix.patch b/CraftBukkit-Patches/0155-map-decoration-fix.patch
new file mode 100644
index 000000000..ab072b0e7
--- /dev/null
+++ b/CraftBukkit-Patches/0155-map-decoration-fix.patch
@@ -0,0 +1,127 @@
+From c5d744d965a655960494d8627c0110271a3444d7 Mon Sep 17 00:00:00 2001
+From: Antony Riley <antony@cyberiantiger.org>
+Date: Sun, 26 Apr 2015 02:14:13 +0300
+Subject: [PATCH] map decoration fix
+
+
+diff --git a/src/main/java/net/minecraft/server/EntityItemFrame.java b/src/main/java/net/minecraft/server/EntityItemFrame.java
+index 976de16..1008567 100644
+--- a/src/main/java/net/minecraft/server/EntityItemFrame.java
++++ b/src/main/java/net/minecraft/server/EntityItemFrame.java
+@@ -1,5 +1,8 @@
+ package net.minecraft.server;
+ 
++import java.util.UUID;
++import org.apache.commons.codec.Charsets;
++
+ public class EntityItemFrame extends EntityHanging {
+ 
+     private float c = 1.0F;
+@@ -85,7 +88,7 @@ public class EntityItemFrame extends EntityHanging {
+             if (itemstack.getItem() == Items.FILLED_MAP) {
+                 WorldMap worldmap = ((ItemWorldMap) itemstack.getItem()).getSavedMap(itemstack, this.world);
+ 
+-                worldmap.decorations.remove("frame-" + this.getId());
++                worldmap.decorations.remove(UUID.nameUUIDFromBytes(("frame-" + this.getId()).getBytes(Charsets.US_ASCII))); // Spigot
+             }
+ 
+             itemstack.a((EntityItemFrame) null);
+diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java
+index 9772760..162b3a3 100644
+--- a/src/main/java/net/minecraft/server/WorldMap.java
++++ b/src/main/java/net/minecraft/server/WorldMap.java
+@@ -1,5 +1,6 @@
+ package net.minecraft.server;
+ 
++import com.google.common.base.Charsets;
+ import com.google.common.collect.Lists;
+ import com.google.common.collect.Maps;
+ import java.util.Iterator;
+@@ -23,7 +24,7 @@ public class WorldMap extends PersistentBase {
+     public byte[] colors = new byte[16384];
+     public List<WorldMap.WorldMapHumanTracker> g = Lists.newArrayList();
+     public Map<EntityHuman, WorldMap.WorldMapHumanTracker> i = Maps.newHashMap(); // Spigot
+-    public Map<String, MapIcon> decorations = Maps.newLinkedHashMap();
++    public Map<UUID, MapIcon> decorations = Maps.newLinkedHashMap(); // Spigot
+ 
+     // CraftBukkit start
+     public final CraftMapView mapView;
+@@ -144,7 +145,7 @@ public class WorldMap extends PersistentBase {
+         }
+ 
+         if (!entityhuman.inventory.c(itemstack)) {
+-            this.decorations.remove(entityhuman.getName());
++            this.decorations.remove(entityhuman.getUniqueID()); // Spigot
+         }
+ 
+         for (int i = 0; i < this.g.size(); ++i) {
+@@ -152,7 +153,7 @@ public class WorldMap extends PersistentBase {
+ 
+             if (!worldmap_worldmaphumantracker1.trackee.dead && (worldmap_worldmaphumantracker1.trackee.inventory.c(itemstack) || itemstack.y())) {
+                 if (!itemstack.y() && worldmap_worldmaphumantracker1.trackee.dimension == this.map) {
+-                    this.a(0, worldmap_worldmaphumantracker1.trackee.world, worldmap_worldmaphumantracker1.trackee.getName(), worldmap_worldmaphumantracker1.trackee.locX, worldmap_worldmaphumantracker1.trackee.locZ, (double) worldmap_worldmaphumantracker1.trackee.yaw);
++                    this.a(0, worldmap_worldmaphumantracker1.trackee.world, worldmap_worldmaphumantracker1.trackee.getUniqueID(), worldmap_worldmaphumantracker1.trackee.locX, worldmap_worldmaphumantracker1.trackee.locZ, (double) worldmap_worldmaphumantracker1.trackee.yaw); // Spigot
+                 }
+             } else {
+                 this.i.remove(worldmap_worldmaphumantracker1.trackee);
+@@ -164,7 +165,7 @@ public class WorldMap extends PersistentBase {
+             EntityItemFrame entityitemframe = itemstack.z();
+             BlockPosition blockposition = entityitemframe.getBlockPosition();
+ 
+-            this.a(1, entityhuman.world, "frame-" + entityitemframe.getId(), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.direction.b() * 90));
++            this.a(1, entityhuman.world, UUID.nameUUIDFromBytes(("frame-" + entityitemframe.getId()).getBytes(Charsets.US_ASCII)), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.direction.b() * 90)); // Spigot
+         }
+ 
+         if (itemstack.hasTag() && itemstack.getTag().hasKeyOfType("Decorations", 9)) {
+@@ -173,15 +174,18 @@ public class WorldMap extends PersistentBase {
+             for (int j = 0; j < nbttaglist.size(); ++j) {
+                 NBTTagCompound nbttagcompound = nbttaglist.get(j);
+ 
+-                if (!this.decorations.containsKey(nbttagcompound.getString("id"))) {
+-                    this.a(nbttagcompound.getByte("type"), entityhuman.world, nbttagcompound.getString("id"), nbttagcompound.getDouble("x"), nbttagcompound.getDouble("z"), nbttagcompound.getDouble("rot"));
++                // Spigot - start
++                UUID uuid = UUID.nameUUIDFromBytes(nbttagcompound.getString("id").getBytes(Charsets.US_ASCII));
++                if (!this.decorations.containsKey(uuid)) {
++                    this.a(nbttagcompound.getByte("type"), entityhuman.world, uuid, nbttagcompound.getDouble("x"), nbttagcompound.getDouble("z"), nbttagcompound.getDouble("rot"));
++                // Spigot - end
+                 }
+             }
+         }
+ 
+     }
+ 
+-    private void a(int i, World world, String s, double d0, double d1, double d2) {
++    private void a(int i, World world, UUID s, double d0, double d1, double d2) {
+         int j = 1 << this.scale;
+         float f = (float) (d0 - (double) this.centerX) / (float) j;
+         float f1 = (float) (d1 - (double) this.centerZ) / (float) j;
+diff --git a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java b/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java
+index d56a291..ad47bdd 100644
+--- a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java
++++ b/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java
+@@ -1,5 +1,6 @@
+ package org.bukkit.craftbukkit.map;
+ 
++import java.util.UUID;
+ import net.minecraft.server.WorldMap;
+ import net.minecraft.server.MapIcon;
+ 
+@@ -34,13 +35,12 @@ public class CraftMapRenderer extends MapRenderer {
+             cursors.removeCursor(cursors.getCursor(0));
+         }
+ 
+-        for (Object key : worldMap.decorations.keySet()) {
++        for (UUID key : worldMap.decorations.keySet()) { // Spigot string -> uuid.
+             // If this cursor is for a player check visibility with vanish system
+-            Player other = Bukkit.getPlayerExact((String) key);
++            Player other = Bukkit.getPlayer(key); // Spigot
+             if (other != null && !player.canSee(other)) {
+                 continue;
+             }
+-
+       
+             MapIcon decoration = (MapIcon) worldMap.decorations.get(key);
+             cursors.addCursor(decoration.getX(), decoration.getY(), (byte) (decoration.getRotation() & 15), decoration.getType());
+-- 
+1.9.1
+