diff --git a/Bukkit-Patches/0028-Fix-slow-tab-complete-for-some-commands.patch b/Bukkit-Patches/0028-Fix-slow-tab-complete-for-some-commands.patch
new file mode 100644
index 0000000000..7bd5b7ff23
--- /dev/null
+++ b/Bukkit-Patches/0028-Fix-slow-tab-complete-for-some-commands.patch
@@ -0,0 +1,34 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: md_5 <git@md-5.net>
+Date: Tue, 22 Jul 2014 21:01:32 +1000
+Subject: [PATCH] Fix slow tab complete for some commands.
+
+Use online players instead of offline players, which is very slow.
+
+diff --git a/src/main/java/org/bukkit/command/defaults/DeopCommand.java b/src/main/java/org/bukkit/command/defaults/DeopCommand.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/command/defaults/DeopCommand.java
++++ b/src/main/java/org/bukkit/command/defaults/DeopCommand.java
+@@ -0,0 +0,0 @@ public class DeopCommand extends VanillaCommand {
+ 
+         if (args.length == 1) {
+             List<String> completions = new ArrayList<String>();
+-            for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
++            for (OfflinePlayer player : Bukkit.getOnlinePlayers()) { // Spigot - offline players is slow
+                 String playerName = player.getName();
+                 if (player.isOp() && StringUtil.startsWithIgnoreCase(playerName, args[0])) {
+                     completions.add(playerName);
+diff --git a/src/main/java/org/bukkit/command/defaults/WhitelistCommand.java b/src/main/java/org/bukkit/command/defaults/WhitelistCommand.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/command/defaults/WhitelistCommand.java
++++ b/src/main/java/org/bukkit/command/defaults/WhitelistCommand.java
+@@ -0,0 +0,0 @@ public class WhitelistCommand extends VanillaCommand {
+         } else if (args.length == 2) {
+             if (args[0].equalsIgnoreCase("add")) {
+                 List<String> completions = new ArrayList<String>();
+-                for (OfflinePlayer player : Bukkit.getOfflinePlayers()) {
++                for (OfflinePlayer player : Bukkit.getOnlinePlayers()) { // Spigot - offline players is slow
+                     String name = player.getName();
+                     if (StringUtil.startsWithIgnoreCase(name, args[1]) && !player.isWhitelisted()) {
+                         completions.add(name);
+--
\ No newline at end of file
diff --git a/CraftBukkit-Patches/0016-Entity-Activation-Range.patch b/CraftBukkit-Patches/0016-Entity-Activation-Range.patch
index f456274d73..0797e06913 100644
--- a/CraftBukkit-Patches/0016-Entity-Activation-Range.patch
+++ b/CraftBukkit-Patches/0016-Entity-Activation-Range.patch
@@ -327,7 +327,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        maxRange = Math.max( maxRange, miscActivationRange );
 +        maxRange = Math.min( ( world.spigotConfig.viewDistance << 4 ) - 8, maxRange );
 +
-+        for ( Entity player : new ArrayList<Entity>( world.players ) )
++        for ( Entity player : (List<Entity>) world.players )
 +        {
 +
 +            player.activatedTick = MinecraftServer.currentTick;
diff --git a/CraftBukkit-Patches/0162-Make-moved-wrongly-limit-configurable.patch b/CraftBukkit-Patches/0162-Make-moved-wrongly-limit-configurable.patch
new file mode 100644
index 0000000000..5ce1d4aa90
--- /dev/null
+++ b/CraftBukkit-Patches/0162-Make-moved-wrongly-limit-configurable.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jonas Konrad <me@yawk.at>
+Date: Fri, 4 Jul 2014 23:03:13 +0200
+Subject: [PATCH] Make "moved wrongly" limit configurable
+
+
+diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/server/PlayerConnection.java
++++ b/src/main/java/net/minecraft/server/PlayerConnection.java
+@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketPlayInListener {
+                 d10 = d4 * d4 + d5 * d5 + d6 * d6;
+                 boolean flag1 = false;
+ 
+-                if (d10 > 0.0625D && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) {
++                // Spigot: make "moved wrongly" limit configurable
++                if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) {
+                     flag1 = true;
+                     c.warn(this.player.getName() + " moved wrongly!");
+                 }
+diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/spigotmc/SpigotConfig.java
++++ b/src/main/java/org/spigotmc/SpigotConfig.java
+@@ -0,0 +0,0 @@ public class SpigotConfig
+     {
+         intCacheLimit = getInt( "settings.int-cache-limit", 1024 );
+     }
++
++    private static double getDouble(String path, double def)
++    {
++        config.addDefault( path, def );
++        return config.getDouble( path, config.getDouble( path ) );
++    }
++
++    public static double movedWronglyThreshold;
++    private static void movedWronglyThreshold()
++    {
++        movedWronglyThreshold = getDouble( "settings.moved-wrongly-threshold", 0.0625D );
++    }
+ }
+--
\ No newline at end of file
diff --git a/Spigot-Server-Patches/Fix-Null-Tile-Entity-Worlds.patch b/CraftBukkit-Patches/0163-Fix-Null-Tile-Entity-Worlds.patch
similarity index 91%
rename from Spigot-Server-Patches/Fix-Null-Tile-Entity-Worlds.patch
rename to CraftBukkit-Patches/0163-Fix-Null-Tile-Entity-Worlds.patch
index 6356c90716..f0570590d4 100644
--- a/Spigot-Server-Patches/Fix-Null-Tile-Entity-Worlds.patch
+++ b/CraftBukkit-Patches/0163-Fix-Null-Tile-Entity-Worlds.patch
@@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
                      }
                  }
  
-+                tileentity.a(this); // PaperSpigot - No null worlds
++                tileentity.a(this); // Spigot - No null worlds
                  this.a.add(tileentity);
              } else {
                  this.tileEntityList.add(tileentity);