--- surf.c.orig	2010-09-20 13:15:15.054456497 +0100
+++ surf.c	2010-09-20 14:13:07.706497503 +0100
@@ -388,8 +388,18 @@
 
 	if(strcmp(uri, "") == 0)
 		return;
-	u = g_strrstr(uri, "://") ? g_strdup(uri)
-		: g_strdup_printf("http://%s", uri);
+	
+	
+	if(g_strrstr(uri, "://")) {
+		u = g_strdup(uri);
+	} else {
+		if(!access(uri, R_OK)) {
+			u = g_strdup_printf("file://%s", uri);
+		} else {
+			u = g_strdup_printf("http://%s", uri);
+		}
+	}
+	
 	/* prevents endless loop */
 	if(c->uri && strcmp(u, c->uri) == 0) {
 		reload(c, &a);
