--- File.orig	2009-11-20 11:34:03.000000000 +0000
+++ File.php	2009-11-20 11:33:01.000000000 +0000
@@ -70,10 +70,12 @@
     function saveNew($redir_data, $given_url) {
         $x = new File;
         $x->url = $given_url;
-        if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected'];
-        if (!empty($redir_data['title'])) $x->title = $redir_data['title'];
-        if (!empty($redir_data['type'])) $x->mimetype = $redir_data['type'];
-        if (!empty($redir_data['size'])) $x->size = intval($redir_data['size']);
+        if (preg_match('/^(https?|ftp):/i', $x->url)) {
+            if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected'];
+            if (!empty($redir_data['title'])) $x->title = $redir_data['title'];
+            if (!empty($redir_data['type'])) $x->mimetype = $redir_data['type'];
+            if (!empty($redir_data['size'])) $x->size = intval($redir_data['size']);
+        }
         if (isset($redir_data['time']) && $redir_data['time'] > 0) $x->date = intval($redir_data['time']);
         $file_id = $x->insert();
 
--- File_redirection.orig	2009-11-20 11:21:46.000000000 +0000
+++ File_redirection.php	2009-11-20 11:27:19.000000000 +0000
@@ -162,7 +162,11 @@
         return null;
     }
 
-    function _canonUrl($in_url, $default_scheme = 'http://') {
+    function _canonUrl($in_url, $default_scheme = 'AUTO') {
+        if ($default_scheme == 'AUTO') {
+            $default_scheme = (strstr($in_url, '@')===FALSE)?'http://':'mailto:';
+        }
+    
         if (empty($in_url)) return false;
         $out_url = $in_url;
         $p = parse_url($out_url);
