diff --git a/src/main/java/com/comandante/creeper/command/GoldCommand.java b/src/main/java/com/comandante/creeper/command/GoldCommand.java
index 0fbcfeb5d727ba17044c9c160efc125f8cb96958..605b0c156768db1970f51845aaa3e4017ebbbe7e 100644
--- a/src/main/java/com/comandante/creeper/command/GoldCommand.java
+++ b/src/main/java/com/comandante/creeper/command/GoldCommand.java
@@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
 
+import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 
 public class GoldCommand extends Command {
 
@@ -23,7 +25,7 @@ public class GoldCommand extends Command {
     public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
         configure(e);
         try {
-          write("You have " + playerManager.getPlayerMetadata(playerId).getGold() + Color.YELLOW + " gold." + Color.RESET);
+          write("You have " + NumberFormat.getNumberInstance(Locale.US).format(playerManager.getPlayerMetadata(playerId).getGold()) + Color.YELLOW + " gold." + Color.RESET);
         } finally {
             super.messageReceived(ctx, e);
         }
diff --git a/src/main/java/com/comandante/creeper/command/LootCommand.java b/src/main/java/com/comandante/creeper/command/LootCommand.java
index 957c448349a6f66f627cd1b43fed25a579d92762..3b1113bf3a166603ae78d3c01884396dd18451b4 100644
--- a/src/main/java/com/comandante/creeper/command/LootCommand.java
+++ b/src/main/java/com/comandante/creeper/command/LootCommand.java
@@ -7,8 +7,10 @@ import com.comandante.creeper.server.Color;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
 
+import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 import java.util.Set;
 
 public class LootCommand extends Command {
@@ -32,7 +34,7 @@ public class LootCommand extends Command {
                         if (loot != null) {
                             int gold = lootManager.lootGoldAmountReturn(loot);
                             if (gold > 0) {
-                                write("You looted " + gold + Color.YELLOW + " gold" + Color.RESET + " from a " + item.getItemName() + ".\r\n");
+                                write("You looted " + NumberFormat.getNumberInstance(Locale.US).format(gold) + Color.YELLOW + " gold" + Color.RESET + " from a " + item.getItemName() + ".\r\n");
                                 player.incrementGold(gold);
                             }
                             Set<Item> items = lootManager.lootItemsReturn(loot);
diff --git a/src/main/java/com/comandante/creeper/command/XpCommand.java b/src/main/java/com/comandante/creeper/command/XpCommand.java
index 5d98bfe16ab391cd6998b626fe547327a5cd5851..9715f59b7c339098e521f1b601d9f28392e392c7 100644
--- a/src/main/java/com/comandante/creeper/command/XpCommand.java
+++ b/src/main/java/com/comandante/creeper/command/XpCommand.java
@@ -4,7 +4,6 @@ import com.codahale.metrics.Meter;
 import com.comandante.creeper.Main;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.player.Levels;
-import com.comandante.creeper.player.Player;
 import com.comandante.creeper.player.PlayerMetadata;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
@@ -18,7 +17,6 @@ import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
-import java.util.Set;
 
 
 public class XpCommand extends Command {
@@ -40,12 +38,17 @@ public class XpCommand extends Command {
             int expToNextLevel = Levels.getXp(nextLevel) - playerMetadata.getStats().getExperience();
             Meter meter = Main.metrics.meter("experience-" + player.getPlayerName());
             StringBuilder sb = new StringBuilder();
-            sb.append(expToNextLevel).append(" experience to level ").append(nextLevel).append(".\r\n");
+            sb.append(NumberFormat.getNumberInstance(Locale.US).format(expToNextLevel)).append(" experience to level ").append(nextLevel).append(".\r\n");
 
             Table t = new Table(2, BorderStyle.CLASSIC_COMPATIBLE,
-                    ShownBorders.HEADER_AND_COLUMNS);
-            t.addCell("time window");
-            t.addCell("rate");
+                    ShownBorders.NONE);
+
+            t.setColumnWidth(0, 8, 20);
+            t.setColumnWidth(1, 10, 13);
+
+
+            t.addCell("Window");
+            t.addCell("Rate");
             t.addCell(" 1 min");
             t.addCell(String.valueOf(round(meter.getOneMinuteRate())) + " xp/sec");
             t.addCell(" 5 min");
diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java
index 2b2c7f3187e4d35d5cded5ebfedae5a42a770a23..be872078f1991e8e98ce85222594baaa7ddcd7ca 100644
--- a/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java
+++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/AccountQueryCommand.java
@@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
 
+import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 
 public class AccountQueryCommand extends BankCommand {
 
@@ -24,8 +26,8 @@ public class AccountQueryCommand extends BankCommand {
         try {
             int goldInBank = playerManager.getPlayerMetadata(playerId).getGoldInBank();
             int gold = playerManager.getPlayerMetadata(playerId).getGold();
-            write("You have " + goldInBank + Color.YELLOW + " gold" + Color.RESET + " in your bank account."+ "\r\n");
-            write("You have " + gold + Color.YELLOW + " gold" + Color.RESET + " in your inventory."+ "\r\n");
+            write("You have " + NumberFormat.getNumberInstance(Locale.US).format(goldInBank) + Color.YELLOW + " gold" + Color.RESET + " in your bank account."+ "\r\n");
+            write("You have " + NumberFormat.getNumberInstance(Locale.US).format(gold) + Color.YELLOW + " gold" + Color.RESET + " in your inventory."+ "\r\n");
         } finally {
             super.messageReceived(ctx, e);
         }
diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java
index 314dfe9d12f7aef61455c8c09f94c05aaf22aaf4..f1330abf028b0e6637803891a19394935a35530f 100644
--- a/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java
+++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/DepositCommand.java
@@ -7,8 +7,10 @@ import com.comandante.creeper.server.Color;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
 
+import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 
 public class DepositCommand extends BankCommand {
 
@@ -27,7 +29,7 @@ public class DepositCommand extends BankCommand {
                 int depositAmt = Integer.parseInt(originalMessageParts.get(1));
                 if (areFundsAvailable(depositAmt)) {
                     player.transferGoldToBank(depositAmt);
-                    write("Your funds of " + depositAmt + Color.YELLOW + " gold " + Color.RESET + "have been transferred to your bank account."+ "\r\n");
+                    write("Your funds of " + NumberFormat.getNumberInstance(Locale.US).format(depositAmt) + Color.YELLOW + " gold " + Color.RESET + "have been transferred to your bank account."+ "\r\n");
                 } else {
                     write("You don't have enough" + Color.YELLOW + " gold "+ Color.RESET + "to cover the deposit amount."+ "\r\n");
                 }
diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java
index a1f1f5b710c615852938c300c3b3eefa32536da5..23946a7d7b320eb24532b050a5ddf14dbbc2e7cf 100644
--- a/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java
+++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/WithdrawalCommand.java
@@ -6,8 +6,10 @@ import com.comandante.creeper.server.Color;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
 
+import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Locale;
 
 public class WithdrawalCommand extends BankCommand {
 
@@ -26,7 +28,7 @@ public class WithdrawalCommand extends BankCommand {
                 int withdrawalAmount = Integer.parseInt(originalMessageParts.get(1));
                 if (areBankFundsAvailable(withdrawalAmount)) {
                     player.transferBankGoldToPlayer(withdrawalAmount);
-                    write("Your funds of " + withdrawalAmount + Color.YELLOW + " gold " + Color.RESET + "have been withdrawn from your bank account." + "\r\n");
+                    write("Your funds of " + NumberFormat.getNumberInstance(Locale.US).format(withdrawalAmount) + Color.YELLOW + " gold " + Color.RESET + "have been withdrawn from your bank account." + "\r\n");
                 } else {
                     write("You don't have enough" + Color.YELLOW + " gold "+ Color.RESET + "to cover the withdrawal amount." + "\r\n");
                 }
diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
index 5b3aca67fa6e531421e19863e6e573cf4a30146f..a7e2ee567453734180ff9d666e3680a47f9335f0 100755
--- a/src/main/java/com/comandante/creeper/player/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -109,12 +109,14 @@ public class Player extends CreeperEntity {
     private void processEffects() {
         synchronized (interner.intern(playerId)) {
             PlayerMetadata playerMetadata = getPlayerMetadata();
-            for (String effectId : playerMetadata.getEffects()) {
+            Iterator<String> iterator = playerMetadata.getEffects().iterator();
+            while (iterator.hasNext()) {
+                String effectId =  iterator.next();
                 Effect effect = gameManager.getEntityManager().getEffectEntity(effectId);
                 if (effect.getEffectApplications() >= effect.getMaxEffectApplications()) {
                     gameManager.getChannelUtils().write(playerId, effect.getEffectName() + " has worn off.\r\n", true);
                     gameManager.getEntityManager().removeEffect(effect);
-                    playerMetadata.removeEffectId(effectId);
+                    iterator.remove();
                 } else {
                     effect.setEffectApplications(effect.getEffectApplications() + 1);
                     gameManager.getEffectsManager().application(effect, playerMetadata);
@@ -646,7 +648,9 @@ public class Player extends CreeperEntity {
             if (playerMetadata.getEffects() != null) {
                 for (String effectId : playerMetadata.getEffects()) {
                     Effect effect = gameManager.getEntityManager().getEffectEntity(effectId);
-                    StatsHelper.combineStats(newStats, effect.getDurationStats());
+                    if (effect != null) {
+                        StatsHelper.combineStats(newStats, effect.getDurationStats());
+                    }
                 }
             }
             return newStats;
diff --git a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
index 9998838c6a229a6b2b4cccd58b4ebf8227771a77..ed4853e91878d48a8d431801d877dae2537aafca 100644
--- a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
@@ -122,10 +122,6 @@ public class PlayerMetadata implements Serializable {
         effects.add(effectId);
     }
 
-    protected void removeEffectId(String effectId) {
-        effects.remove(effectId);
-    }
-
     public String getPlayerName() {
         return playerName;
     }