--- ../src-base/minecraft/net/minecraft/client/gui/GuiChat.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiChat.java
@@ -217,13 +217,14 @@
             this.field_146297_k.field_71456_v.func_146158_b().func_146234_a(new ChatComponentText(stringbuilder.toString()), 1);
         }
 
-        this.field_146415_a.func_146191_b((String)this.field_146412_t.get(this.field_146413_s++));
+        this.field_146415_a.func_146191_b(net.minecraft.util.EnumChatFormatting.func_110646_a((String)this.field_146412_t.get(this.field_146413_s++)));
     }
 
     private void func_146405_a(String p_146405_1_, String p_146405_2_)
     {
         if (p_146405_1_.length() >= 1)
         {
+            net.minecraftforge.client.ClientCommandHandler.instance.autoComplete(p_146405_1_, p_146405_2_);
             BlockPos blockpos = null;
 
             if (this.field_146297_k.field_71476_x != null && this.field_146297_k.field_71476_x.field_72313_a == MovingObjectPosition.MovingObjectType.BLOCK)
@@ -285,6 +286,13 @@
             String[] astring1 = p_146406_1_;
             int i = p_146406_1_.length;
 
+            String[] complete = net.minecraftforge.client.ClientCommandHandler.instance.latestAutoComplete;
+            if (complete != null)
+            {
+                astring1 = com.google.common.collect.ObjectArrays.concat(complete, astring1, String.class);
+                i = astring1.length;
+            }
+
             for (int j = 0; j < i; ++j)
             {
                 String s = astring1[j];
