diff --git a/CraftBukkit-Patches/0067-Fix-links-in-chat.patch b/CraftBukkit-Patches/0067-Fix-links-in-chat.patch
index 992bd0e4cc..f6aa7e7b8a 100644
--- a/CraftBukkit-Patches/0067-Fix-links-in-chat.patch
+++ b/CraftBukkit-Patches/0067-Fix-links-in-chat.patch
@@ -1,11 +1,11 @@
-From 92c15b1f9c59b5c5898fead8e68c604eeeb800d9 Mon Sep 17 00:00:00 2001
+From 64706e7d04a86c6916f0cfe1decb0f5eaf2db38e Mon Sep 17 00:00:00 2001
 From: Thinkofdeath <purggames@gmail.com>
 Date: Sun, 1 Dec 2013 10:33:55 +0000
 Subject: [PATCH] Fix links in chat
 
 
 diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
-index cc8e715..377653b 100644
+index cc8e715..5d6ce54 100644
 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
 +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
 @@ -3,11 +3,15 @@ package org.bukkit.craftbukkit.util;
@@ -24,54 +24,78 @@ index cc8e715..377653b 100644
  
  import com.google.common.collect.ImmutableMap;
  import com.google.common.collect.ImmutableMap.Builder;
-@@ -29,6 +33,7 @@ public final class CraftChatMessage {
+@@ -29,6 +33,8 @@ public final class CraftChatMessage {
          private ChatModifier modifier = new ChatModifier();
          private StringBuilder builder = new StringBuilder();
          private final IChatBaseComponent[] output;
-+        private static final Pattern url = Pattern.compile("^(?:(https?)://)?([-\\w_\\.]{2,}\\.[a-z]{2,4})(/\\S*)?$");
++        private static final Pattern url = Pattern.compile("^(\u00A7.)*?((?:(https?)://)?([-\\w_\\.]{2,}\\.[a-z]{2,4})(/\\S*?)?)(\u00A7.)*?$");
++        private int lastWord = 0;
  
          private FromString(String message) {
              if (message == null) {
-@@ -38,6 +43,8 @@ public final class CraftChatMessage {
+@@ -38,10 +44,13 @@ public final class CraftChatMessage {
              list.add(currentChatComponent);
  
              EnumChatFormat format = null;
 +            Matcher matcher = url.matcher(message);
-+            int lastWord = 0;
++            lastWord = 0;
  
              for (int i = 0; i < message.length(); i++) {
                  char currentChar = message.charAt(i);
-@@ -78,6 +85,30 @@ public final class CraftChatMessage {
+                 if (currentChar == '\u00A7' && (i < (message.length() - 1)) && (format = formatMap.get(message.charAt(i + 1))) != null) {
++                    checkUrl(matcher, message, i, false);
+                     if (builder.length() > 0) {
+                         appendNewComponent();
+                     }
+@@ -78,6 +87,11 @@ public final class CraftChatMessage {
                      }
                      currentChatComponent = null;
                  } else {
 +                    if (currentChar == ' ' || i == message.length() - 1) {
-+                        Matcher urlMatcher = matcher.region(lastWord, i == message.length() - 1 ? message.length() : i);
-+                        lastWord = i + 1;
-+                        if (urlMatcher.find()) {
-+                            String fullUrl = urlMatcher.group(0);
-+                            String protocol = urlMatcher.group(1);
-+                            String url = urlMatcher.group(2);
-+                            String path = urlMatcher.group(3);
-+                            builder.delete(builder.length() - fullUrl.length() + (i == message.length() - 1 ? 1 : 0), builder.length());
-+                            if (builder.length() > 0) {
-+                                appendNewComponent();
-+                            }
-+                            builder.append(fullUrl);
-+                            ChatClickable link = new ChatClickable(EnumClickAction.OPEN_URL,
-+                                    (protocol!=null?protocol:"http") + "://" + url + (path!=null?path:""));
-+                            modifier.a(link);
-+                            appendNewComponent();
-+                            modifier.a((ChatClickable) null);
-+                            if (i == message.length() - 1) {
-+                                appendNewComponent();
-+                                break;
-+                            }
++                        if (checkUrl(matcher, message, i, true)) {
++                            break;
 +                        }
 +                    }
                      builder.append(currentChar);
                  }
              }
+@@ -89,6 +103,36 @@ public final class CraftChatMessage {
+             output = list.toArray(new IChatBaseComponent[0]);
+         }
+ 
++        private boolean checkUrl(Matcher matcher, String message, int i, boolean newWord) {
++            Matcher urlMatcher = matcher.region(lastWord, i == message.length() - 1 ? message.length() : i);
++            if (newWord) {
++                lastWord = i + 1;
++            }
++            if (urlMatcher.find()) {
++                String fullUrl = urlMatcher.group(2);
++                String protocol = urlMatcher.group(3);
++                String url = urlMatcher.group(4);
++                String path = urlMatcher.group(5);
++                builder.delete(builder.length() - fullUrl.length() + (i == message.length() - 1 ? 1 : 0), builder.length());
++                if (builder.length() > 0) {
++                    appendNewComponent();
++                }
++                builder.append(fullUrl);
++                ChatClickable link = new ChatClickable(EnumClickAction.OPEN_URL,
++                        (protocol!=null?protocol:"http") + "://" + url + (path!=null?path:""));
++                modifier.a(link);
++                appendNewComponent();
++                modifier.a((ChatClickable) null);
++                if (!newWord) { //Force new word to prevent double checking
++                    lastWord = i + 1;
++                }
++                if (i == message.length() - 1) {
++                    return true;
++                }
++            }
++            return false;
++        }
++
+         private void appendNewComponent() {
+             IChatBaseComponent addition = new ChatComponentText(builder.toString()).setChatModifier(modifier);
+             builder = new StringBuilder();
 -- 
-1.8.3.2
+1.8.4.msysgit.0