diff --git a/conf/scheme.conf b/conf/scheme.conf
new file mode 100644
index 0000000000000000000000000000000000000000..88cb3c44df11dcac2f2bcbedee17a7131f22a420
--- /dev/null
+++ b/conf/scheme.conf
@@ -0,0 +1,11 @@
+#Add URL schemes you want to be recognized as links here
+
+http
+https
+telnet
+gopher
+wais
+ftp
+ed2k
+irc
+ldap
\ No newline at end of file
diff --git a/inc/confutils.php b/inc/confutils.php
index c18b92a028fbbda869781a3a3955f8623dd80fb3..d735b8b8233080ca03f754a6fd63a47216ce6c9f 100644
--- a/inc/confutils.php
+++ b/inc/confutils.php
@@ -132,6 +132,21 @@ function getWordblocks() {
 }
 
 
+function getSchemes() {
+  static $schemes = NULL;
+  if ( !$schemes ) {
+    $schemes = file(DOKU_CONF.'scheme.conf');
+    if (@file_exists(DOKU_CONF.'scheme.local.conf')) {
+      $local = file(DOKU_CONF.'scheme.local.conf');
+      $schemes = array_merge($schemes, $local);
+    }
+  }
+  $schemes = array_map('trim', $schemes);
+  $schemes = preg_replace('/^#.*/', '', $schemes);
+  $schemes = array_filter($schemes);
+  return $schemes;
+}
+
 /**
  * Builds a hash from a configfile
  *
diff --git a/inc/parser/parser.php b/inc/parser/parser.php
index 804257d034ebdedafb62182bad8db8693a0c03df..4cf57b3bf384c73d233cb2fcadf3a6197c9dc867 100644
--- a/inc/parser/parser.php
+++ b/inc/parser/parser.php
@@ -845,7 +845,7 @@ class Doku_Parser_Mode_rss extends Doku_Parser_Mode {
 
 //-------------------------------------------------------------------
 class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
-    var $schemes = array('http','https','telnet','gopher','wais','ftp','ed2k','irc','ldap');
+    var $schemes = array();
     var $patterns = array();
 
     function preConnect() {
@@ -857,13 +857,13 @@ class Doku_Parser_Mode_externallink extends Doku_Parser_Mode {
         $host = $ltrs.$punc;
         $any  = $ltrs.$gunk.$punc;
 
+        $this->schemes = getSchemes();
         foreach ( $this->schemes as $scheme ) {
             $this->patterns[] = '\b(?i)'.$scheme.'(?-i)://['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
         }
 
         $this->patterns[] = '\b(?i)www?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
         $this->patterns[] = '\b(?i)ftp?(?-i)\.['.$host.']+?\.['.$host.']+?['.$any.']+?(?=['.$punc.']*[^'.$any.'])';
-
     }
 
     function connectTo($mode) {