diff --git a/ckeditor_link.module b/ckeditor_link.module
index 13662ef..2717c7a 100644
--- a/ckeditor_link.module
+++ b/ckeditor_link.module
@@ -325,6 +325,7 @@ function ckeditor_link_url($path = NULL, $langcode, $options = array()) {
   return url($path, $options);
 }
 
-function _ckeditor_link_check_path($path) {
-  return preg_match('`^[a-z][\w\/\.-]*$`i', $path);
+function _ckeditor_link_check_path(&$path) {
+  $path = str_replace("%2F", "/", rawurlencode($path));
+  return preg_match('`^[a-z][\w\/\.%-]*$`i', $path);
 }
diff --git a/plugins/link/plugin.js b/plugins/link/plugin.js
index 2a807f5..d58874d 100644
--- a/plugins/link/plugin.js
+++ b/plugins/link/plugin.js
@@ -62,7 +62,7 @@
     if (value.indexOf(basePath) == 0) {
       value = value.substr(basePath.length);
     }
-    if (/^[a-z][\w\/\.-]*$/i.test(value)) {
+    if (/^[a-z][\w\/\.%-]*$/i.test(value)) {
       return value;
     }
     return false;
@@ -210,4 +210,4 @@
       });
     }
   });
-})(jQuery);
\ No newline at end of file
+})(jQuery);
