diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css
index bd21144..5ba72f3 100644
--- a/erpnext/startup/startup.css
+++ b/erpnext/startup/startup.css
@@ -13,7 +13,6 @@
 }
 
 body {
-	background: url(../images/redbeech.jpg) repeat;
 	color: #616161;
 }
 
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 442e7be..9c14d2e 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -170,7 +170,7 @@
 }
 
 erpnext.set_user_background = function(src) {
-	set_style(repl('body { background: url("files/%(src)s") repeat;}', {src:src}))
+	set_style(repl('#body_div { background: url("files/%(src)s") repeat;}', {src:src}))
 }
 
 // start
diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css
index ad8702a..fa27d4a 100644
--- a/erpnext/website/css/website.css
+++ b/erpnext/website/css/website.css
@@ -1,9 +1,10 @@
-div#body_div, header .container, .content, #opened-page-selector, footer {
+header .container, .content {
 	width: 900px;
 }
 
 div#body_div {
-	margin-top: 90px;
+	padding-top: 90px;
+	min-height: 400px;
 }
 
 p, li {
@@ -62,19 +63,23 @@
 	background-color: #444;
 }
 
+
 footer {
-	color: #777;	
+	background-color: #eee;
+	box-shadow: inset 0 10px 10px rgba(0,0,0,0.3), inset 0 3px 3px rgba(0,0,0,0.3);
+	border-top: 1px solid #555;
+	padding-top: 10px;
+	text-align: center;
 }
 
 .web-footer {
 	color: inherit;
-	text-align: center;
-	margin: 10px;
+	padding: 10px;
 	line-height: 1.7;
 }
 
 .web-footer div, .web-footer a {
-	font-size: 14px;
+	font-size: 12px;
 }
 
 .web-footer-menu {
@@ -93,10 +98,20 @@
 	border-right: 1px solid #999;
 }
 
+.web-footer-menu ul li:first-child {
+	padding-left: 0px;
+}
+
 .web-footer-menu ul li:last-child {
 	border-right: 0px solid #777 !important;
 }
 
+.web-footer-powered {
+	color: #888;
+	float: right;
+	margin-top: -12px;
+}
+
 /* slide view */
 
 .next-slide {
diff --git a/erpnext/website/doctype/blog/blog.py b/erpnext/website/doctype/blog/blog.py
index 1f1b98b..c78a9cc 100644
--- a/erpnext/website/doctype/blog/blog.py
+++ b/erpnext/website/doctype/blog/blog.py
@@ -32,9 +32,11 @@
 		self.doc.name = website.utils.page_name(self.doc.title)
 	
 	def validate(self):
-		"""write/update 'Page' with the blog"""		
+		"""write/update 'Page' with the blog"""
+		if self.doc.page_name:
+			webnotes.conn.sql("""delete from tabPage where name=%s""", self.doc.page_name)
+		
 		p = website.utils.add_page(self.doc.title)
-		self.doc.name = p.name
 		
 		from jinja2 import Template
 		import markdown2
@@ -54,11 +56,11 @@
 		p.save()
 		
 		website.utils.add_guest_access_to_page(p.name)
+		self.doc.page_name = p.name
 		
 		# cleanup
 		for f in ['content_html', 'full_name', 'updated']:
 			if f in self.doc.fields:
-				del self.doc.fields[f]
-				
+				del self.doc.fields[f]				
 
 			
\ No newline at end of file
diff --git a/erpnext/website/doctype/blog/blog.txt b/erpnext/website/doctype/blog/blog.txt
index f9ff6fd..ad44d13 100644
--- a/erpnext/website/doctype/blog/blog.txt
+++ b/erpnext/website/doctype/blog/blog.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-03-27 14:36:47',
+		'creation': '2012-04-02 16:02:43',
 		'docstatus': 0,
-		'modified': '2012-03-27 14:36:47',
+		'modified': '2012-04-26 16:58:27',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
@@ -21,7 +21,7 @@
 		'name': '__common__',
 		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'version': 3
+		'version': 5
 	},
 
 	# These values are common for all DocField
@@ -35,15 +35,12 @@
 
 	# These values are common for all DocPerm
 	{
-		'create': 1,
 		'doctype': u'DocPerm',
 		'name': '__common__',
 		'parent': u'Blog',
 		'parentfield': u'permissions',
 		'parenttype': u'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'write': 1
+		'read': 1
 	},
 
 	# DocType, Blog
@@ -54,14 +51,27 @@
 
 	# DocPerm
 	{
+		'create': 1,
 		'doctype': u'DocPerm',
-		'role': u'Website Manager'
+		'permlevel': 0,
+		'role': u'Website Manager',
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'create': 1,
+		'doctype': u'DocPerm',
+		'permlevel': 0,
+		'role': u'Blogger',
+		'write': 1
 	},
 
 	# DocPerm
 	{
 		'doctype': u'DocPerm',
-		'role': u'Blogger'
+		'permlevel': 1,
+		'role': u'All'
 	},
 
 	# DocField
@@ -70,7 +80,8 @@
 		'fieldname': u'title',
 		'fieldtype': u'Data',
 		'label': u'Title',
-		'permlevel': 0
+		'permlevel': 0,
+		'reqd': 1
 	},
 
 	# DocField
@@ -88,7 +99,8 @@
 		'fieldname': u'content',
 		'fieldtype': u'Code',
 		'label': u'Content',
-		'permlevel': 0
+		'permlevel': 0,
+		'reqd': 0
 	},
 
 	# DocField
@@ -96,13 +108,22 @@
 		'doctype': u'DocField',
 		'fieldname': u'content_html',
 		'fieldtype': u'Text',
-		'label': u'Preview',
+		'label': u'Content HTML',
 		'permlevel': 1
 	},
 
 	# DocField
 	{
 		'doctype': u'DocField',
+		'fieldname': u'page_name',
+		'fieldtype': u'Data',
+		'label': u'Page Name',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
 		'fieldname': u'file_list',
 		'fieldtype': u'Text',
 		'hidden': 1,
diff --git a/erpnext/website/doctype/blog/blog_page.js b/erpnext/website/doctype/blog/blog_page.js
index aa3f4c5..dddc6e0 100644
--- a/erpnext/website/doctype/blog/blog_page.js
+++ b/erpnext/website/doctype/blog/blog_page.js
@@ -18,32 +18,28 @@
 
 pscript['onload_{{ doc.name }}'] = function(wrapper) {
 	// sidebar
-	var side = $(wrapper).find('.web-side-section')
-		.append('<h4>Recent Posts</h4>').get(0);
-		
 	wrapper.recent_list = new wn.ui.Listing({
-		parent: side,
+		parent: $(wrapper).find('.recent-posts'),
+		no_toolbar: true,
 		query: 'select name, title, left(content, 100) as content from tabBlog\
-			where ifnull(published,1)=1',
+			where ifnull(published,0)=1 and name!="{{ doc.name }}" order by modified desc',
 		hide_refresh: true,
 		render_row: function(parent, data) {
-			if(data.content.length==100) data.content += '...';
+			console.log(data);
+			if(data.content && data.content.length==100) data.content += '...';
 			parent.innerHTML = repl('<a href="#!%(name)s">%(title)s</a>\
 				<div class="comment">%(content)s</div><br>', data);
 		},
-		page_length: 5
+		page_length: 5,
 	});
 	wrapper.recent_list.run();
-	
-	
-	// comments
-	$(wrapper).find('.web-main-section').append('<hr><h3>Comments</h3>');
-
+		
 	wrapper.comment_list = new wn.ui.Listing({
-		parent: $(wrapper).find('.web-main-section').get(0),
+		parent: $(wrapper).find('.blog-comments').get(0),
+		no_toolbar: true,
 		query: 'select comment, comment_by_fullname, modified\
 			from `tabComment` where comment_doctype="Page"\
-			and comment_docname="{{ doc.name }}"',
+			and comment_docname="{{ doc.name }}" order by modified desc',
 		no_result_message: 'Be the first one to comment',
 		render_row: function(parent, data) {
 			data.comment_date = prettyDate(data.modified);
@@ -57,7 +53,7 @@
 	wrapper.comment_list.run();
 	
 	// add comment
-	$(wrapper).find('.web-main-section').append('<br><button class="btn add-comment">\
+	$(wrapper).find('.layout-main-section').append('<br><button class="btn add-comment">\
 		Add Comment</button>');
 	$(wrapper).find('button.add-comment').click(function(){
 		d = new wn.widgets.Dialog({
diff --git a/erpnext/website/doctype/blog/template.html b/erpnext/website/doctype/blog/template.html
index 467f301..688ffac 100644
--- a/erpnext/website/doctype/blog/template.html
+++ b/erpnext/website/doctype/blog/template.html
@@ -1,14 +1,18 @@
 <div class="layout-wrapper layout-wrapper-background">
 	<div class="web-content" id="blog-{{ doc.name }}">
 		<div class="layout-main-section">
-			<h1>Blog</h1>
-			<h3>{{ doc.title }}</h3>
+			<h2>{{ doc.title }}</h2>
 			<div class="help">By {{ doc.full_name }} on {{ doc.updated }}</div>
 			<br>
 			{{ doc.content_html }}
+			<hr><h3>Comments</h3>
+			<br>
+			<div class="blog-comments"></div>
 		</div>
 		<div class="layout-side-section">
 			<p><a href="#!blog">All Blogs</a></p>
+			<h4>Recent Posts</h4>
+			<div class="recent-posts" style="min-height: 100px;"></div>
 			<h4>Subscribe</h4>
 			<p>
 				<img src="images/feed.png" style="margin-right: 4px; margin-bottom: -4px">
diff --git a/erpnext/website/doctype/style_settings/custom_template.css b/erpnext/website/doctype/style_settings/custom_template.css
index 8c987f8..4866ac7 100644
--- a/erpnext/website/doctype/style_settings/custom_template.css
+++ b/erpnext/website/doctype/style_settings/custom_template.css
@@ -1,4 +1,4 @@
-body {
+#body_div {
 {% if doc.background_image %}
 	background: url("files/{{ doc.background_image }}") repeat;
 {% elif doc.background_color %}
diff --git a/erpnext/website/doctype/web_page/template.html b/erpnext/website/doctype/web_page/template.html
index 471c95c..b66aded 100644
--- a/erpnext/website/doctype/web_page/template.html
+++ b/erpnext/website/doctype/web_page/template.html
@@ -28,6 +28,3 @@
 		<div style="clear: both"></div>
 	</div>
 </div>
-<div class="web-page-status small">
-	Last Modified: {{ doc.updated }} <a href="#contact">Feedback</a>
-</div>
diff --git a/erpnext/website/doctype/web_page/web_page.js b/erpnext/website/doctype/web_page/web_page.js
index 0b7b78d..17e7f15 100644
--- a/erpnext/website/doctype/web_page/web_page.js
+++ b/erpnext/website/doctype/web_page/web_page.js
@@ -24,10 +24,10 @@
 	refresh: function(doc) {
 		cur_frm.cscript.layout(doc);
 	},
-	insert_style: function() {
+	insert_style: function(doc) {
 		cur_frm.cscript.layout(doc);		
 	},
-	insert_code: function() {
+	insert_code: function(doc) {
 		cur_frm.cscript.layout(doc);		
 	}
 })
\ No newline at end of file
diff --git a/erpnext/website/js/topbar.js b/erpnext/website/js/topbar.js
index aec0f02..8caf8dc 100644
--- a/erpnext/website/js/topbar.js
+++ b/erpnext/website/js/topbar.js
@@ -91,8 +91,7 @@
 	init: function() {
 		$('footer').html(repl('<div class="web-footer">\
 			<div class="web-footer-menu"><ul></ul></div>\
-			<div class="web-footer-address">%(address)s</div>\
-			<div class="web-footer-copyright">&copy; %(copyright)s</div>\
+			<div class="web-footer-copyright">&copy; %(copyright)s | %(address)s</div>\
 			<div class="web-footer-powered">Powered by \
 				<a href="https://erpnext.com">erpnext.com</a></div>\
 		</div>', wn.boot.website_settings));
diff --git a/erpnext/website/page/blog/blog.html b/erpnext/website/page/blog/blog.html
index ffb8128..8d7cd00 100644
--- a/erpnext/website/page/blog/blog.html
+++ b/erpnext/website/page/blog/blog.html
@@ -3,6 +3,7 @@
 		<div class="layout-main-section">
 			<h1>Blog</h1>
 			<br>
+			<div id="blog-list"></div>
 		</div>
 		<div class="layout-side-section">
 			<!-- for later
diff --git a/erpnext/website/page/blog/blog.js b/erpnext/website/page/blog/blog.js
index 418fc6c..3836f90 100644
--- a/erpnext/website/page/blog/blog.js
+++ b/erpnext/website/page/blog/blog.js
@@ -17,18 +17,22 @@
 
 pscript.onload_blog = function(wrapper) {
 	wrapper.blog_list = new wn.ui.Listing({
-		parent: $(wrapper).find('.layout-main-section').get(0),
-		query: 'select tabBlog.name, title, left(content, 300) as content, tabBlog.modified, \
+		parent: $(wrapper).find('#blog-list').get(0),
+		query: 'select tabBlog.name, title, left(content, 1000) as content, tabBlog.modified, \
 			ifnull(first_name, "") as first_name, ifnull(last_name, "") as last_name \
 			from tabProfile, tabBlog\
-		 	where ifnull(published,1)=1 and tabBlog.owner = tabProfile.name',
+		 	where ifnull(published,0)=1 and tabBlog.owner = tabProfile.name',
 		hide_refresh: true,
+		no_toolbar: true,
 		render_row: function(parent, data) {
-			if(data.content.length==300) data.content += '...';
+			if(data.content && data.content.length==1000) data.content += '... (read on)';
+			data.content = wn.markdown(data.content);
+			if(data.last_name) data.last_name = ' ' + data.last_name;
 			data.date = prettyDate(data.modified);
-			parent.innerHTML = repl('<h3><a href="#!%(name)s">%(title)s</a></h3>\
-				<p><div class="help">By %(first_name)s %(last_name)s on %(date)s</div></p>\
-				<div class="comment">%(content)s</div><br>', data);
+			parent.innerHTML = repl('<h2>%(title)s</h2>\
+				<p><div class="help">By %(first_name)s%(last_name)s, %(date)s</div></p>\
+				<p>%(content)s</p>\
+				<a href="#!%(name)s">Read Full Text</a><br>', data);
 		},
 		page_length: 10
 	});
