diff --git a/js/WikiStore.js b/js/WikiStore.js
index a9965fc1b..94cffb498 100755
--- a/js/WikiStore.js
+++ b/js/WikiStore.js
@@ -170,7 +170,7 @@ WikiStore.prototype.getFormattedTiddlerField = function(title,field,format,templ
 				return utils.htmlEncode(tiddler.fields[field]);
 			case "link":
 				// xxx: Attribute encoding is wrong
-				return "" + utils.htmlEncode(tiddler.fields[field]) + "";
+				return "" + utils.htmlEncode(tiddler.fields[field]) + "";
 			case "wikified":
 				return this.renderTiddler("text/html",tiddler.fields.title);
 			case "date":
@@ -182,7 +182,16 @@ WikiStore.prototype.getFormattedTiddlerField = function(title,field,format,templ
 };
 
 WikiStore.prototype.classesForLink = function(target) {
-	return this.tiddlerExists(target) ? "class=\"linkResolves\"" : "";
+	var className = "",
+		externalRegExp = /(?:file|http|https|mailto|ftp|irc|news|data):[^\s'"]+(?:\/|\b)/i;
+	if(externalRegExp.test(target)) {
+		className = "linkExternal";
+	} else if (this.tiddlerExists(target)) {
+		className = "linkInternalResolves";
+	} else {
+		className = "linkInternalMissing";
+	}
+	return className !== "" ? "class=\"" + className + "\"" : "";
 };
 
 WikiStore.prototype.listTiddlers = function(type,template,emptyMessage) {
diff --git a/js/WikiTextParseTree.js b/js/WikiTextParseTree.js
index 9b6dfba1b..d795f7a52 100644
--- a/js/WikiTextParseTree.js
+++ b/js/WikiTextParseTree.js
@@ -1,8 +1,7 @@
 /*\
 title: js/WikiTextParseTree.js
 
-Compile a wikitext parse tree into a JavaScript function that renders the required
-representation of the tree.
+A container for the parse tree generated by parsing wikitext
 
 \*/
 (function(){
diff --git a/test/wikitests/FirstTiddler.html b/test/wikitests/FirstTiddler.html
index 7c673250e..b83a9af5b 100644
--- a/test/wikitests/FirstTiddler.html
+++ b/test/wikitests/FirstTiddler.html
@@ -1 +1 @@
-This is the text of the first tiddler, with a link to the SecondTiddler, too.
\ No newline at end of file
+This is the text of the first tiddler, with a link to the SecondTiddler, too. And a link to http://tiddlywiki.com/.
\ No newline at end of file
diff --git a/test/wikitests/FirstTiddler.tid b/test/wikitests/FirstTiddler.tid
index c042e5d7b..7d595f5f5 100644
--- a/test/wikitests/FirstTiddler.tid
+++ b/test/wikitests/FirstTiddler.tid
@@ -1,3 +1,3 @@
 title: FirstTiddler
 
-This is the ''text'' of the first tiddler, with a @@font-size:8em;color:red;link@@ to the SecondTiddler, too.
\ No newline at end of file
+This is the ''text'' of the first tiddler, with a @@font-size:8em;color:red;link@@ to the SecondTiddler, too. And a link to http://tiddlywiki.com/.
diff --git a/test/wikitests/FirstTiddler.txt b/test/wikitests/FirstTiddler.txt
index 3e71be811..751384266 100644
--- a/test/wikitests/FirstTiddler.txt
+++ b/test/wikitests/FirstTiddler.txt
@@ -1 +1 @@
-This is the text of the first tiddler, with a link to the SecondTiddler, too.
\ No newline at end of file
+This is the text of the first tiddler, with a link to the SecondTiddler, too. And a link to http://tiddlywiki.com/.
\ No newline at end of file
diff --git a/tiddlywiki5/styles.css b/tiddlywiki5/styles.css
index 9c2dd3ac3..131a03353 100644
--- a/tiddlywiki5/styles.css
+++ b/tiddlywiki5/styles.css
@@ -5,8 +5,39 @@ body {
 /* Following styles created with http://www.gridlover.net/; */
 
 body {
-    font-size: 18px;
-    line-height: 27px;
+    font-size: 15px;
+    line-height: 22px;
+}
+code, pre {
+    font-size: 13px;
+    line-height: 18px;
+    padding: 0 3px 2px;
+    font-family: Monaco, Andale Mono, Courier New, monospace;
+    font-size: 12px;
+    -webkit-border-radius: 3px;
+    -moz-border-radius: 3px;
+    border-radius: 3px;
+}
+code {
+	background-color: #fee9cc;
+	color: rgba(0, 0, 0, 0.75);
+	padding: 1px 3px;
+}
+pre {
+	background-color: #f5f5f5;
+	display: block;
+	padding: 8.5px;
+	margin: 0 0 18px;
+	line-height: 18px;
+	font-size: 12px;
+	border: 1px solid #ccc;
+	border: 1px solid rgba(0, 0, 0, 0.15);
+	-webkit-border-radius: 3px;
+	-moz-border-radius: 3px;
+	border-radius: 3px;
+	white-space: pre;
+	white-space: pre-wrap;
+	word-wrap: break-word;
 }
 article {
     max-width: 644px;
@@ -38,16 +69,28 @@ p, ul {
 }
 
 a {
-    font-style: italic;
     text-decoration: none;
 }
 
+a.linkExternal::before {
+    content: "\27a0";
+}
+
 a:hover {
     background-color: #00e;
     color: #fff;
 }
 
-a.linkResolves {
+a.linkExternal {
+    font-style: normal;
+    font-weight: normal;
+}
+
+a.linkInternalResolves {
     font-style: normal;
     font-weight: bold;
 }
+
+a.linkInternalMissing {
+    font-style: italic;
+}