diff --git a/extra/furnace/boilerplate/boilerplate.factor b/extra/furnace/boilerplate/boilerplate.factor
index 7c5b7a0c81..a976199661 100644
--- a/extra/furnace/boilerplate/boilerplate.factor
+++ b/extra/furnace/boilerplate/boilerplate.factor
@@ -1,19 +1,26 @@
 ! Copyright (c) 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors kernel namespaces
-html.templates html.templates.chloe
+html.forms
+html.templates
+html.templates.chloe
 locals
 http.server
 http.server.filters
 furnace ;
 IN: furnace.boilerplate
 
-TUPLE: boilerplate < filter-responder template ;
+TUPLE: boilerplate < filter-responder template init ;
 
-: <boilerplate> ( responder -- boilerplate ) f boilerplate boa ;
+: <boilerplate> ( responder -- boilerplate )
+    boilerplate new
+        swap >>responder
+        [ ] >>init ;
 
 M:: boilerplate call-responder* ( path responder -- )
+    begin-form
     path responder call-next-method
+    responder init>> call
     dup content-type>> "text/html" = [
         clone [| body |
             [
diff --git a/extra/webapps/wiki/wiki-common.xml b/extra/webapps/wiki/wiki-common.xml
index 4c6d1a5b5c..1d08d3832d 100644
--- a/extra/webapps/wiki/wiki-common.xml
+++ b/extra/webapps/wiki/wiki-common.xml
@@ -28,6 +28,23 @@
 
 	<h1><t:write-title /></h1>
 
-        <t:call-next-template />
+	<table width="100%">
+		<tr>
+			<td> <t:call-next-template /> </td>
+			<t:if t:value="sidebar">
+				<td valign="top">
+					<t:bind t:name="sidebar">
+						<h2>
+							<t:a t:href="$wiki/view" t:query="title">
+								<t:label t:name="title" />
+							</t:a>
+						</h2>
+		
+						<t:farkup t:name="content" />
+					</t:bind>
+				</td>
+			</t:if>
+		</tr>
+	</table>
 
 </t:chloe>
diff --git a/extra/webapps/wiki/wiki.factor b/extra/webapps/wiki/wiki.factor
index 3183b48da9..ebaa60777f 100644
--- a/extra/webapps/wiki/wiki.factor
+++ b/extra/webapps/wiki/wiki.factor
@@ -78,6 +78,10 @@ M: revision feed-entry-url id>> revision-url ;
     <action>
         [ "Front Page" view-url <redirect> ] >>display ;
 
+: latest-revision ( title -- revision/f )
+    <article> select-tuple
+    dup [ revision>> <revision> select-tuple ] when ;
+
 : <view-article-action> ( -- action )
     <action>
 
@@ -88,8 +92,8 @@ M: revision feed-entry-url id>> revision-url ;
         ] >>init
 
         [
-            "title" value dup <article> select-tuple [
-                revision>> <revision> select-tuple from-object
+            "title" value dup latest-revision [
+                from-object
                 { wiki "view" } <chloe-content>
             ] [
                 edit-url <redirect>
@@ -297,4 +301,5 @@ M: revision feed-entry-url id>> revision-url ;
         <list-changes-feed-action> "changes.atom" add-responder
         <delete-action> "delete" add-responder
     <boilerplate>
+        [ "sidebar" [ "Sidebar" latest-revision from-object ] nest-form ] >>init
         { wiki "wiki-common" } >>template ;