diff --git a/erpnext/templates/includes/projects.css b/erpnext/templates/includes/projects.css
index d3f2e17..6ad3246 100644
--- a/erpnext/templates/includes/projects.css
+++ b/erpnext/templates/includes/projects.css
@@ -23,8 +23,29 @@
 
 .content_display{
   padding: 5px;
+  font-weight: normal;
+  font-size: 12px;
+  vertical-align: middle;
+  color: #6c7680;
 }
 
+.close-btn{
+  display: none;
+}
+
+.content_display:hover .close-btn{
+	display : block;
+}
+
+.btn-link{
+	padding: 0 10px 0 0;
+}
+
+.bold {
+	font-weight: bold;
+}
+
+
 .task-btn, .issue-btn, .timelog-btn{
 	padding: 8px;
 }
diff --git a/erpnext/templates/pages/projects.html b/erpnext/templates/pages/projects.html
index c71cf2e..4ec0c55 100644
--- a/erpnext/templates/pages/projects.html
+++ b/erpnext/templates/pages/projects.html
@@ -20,9 +20,9 @@
 {% endblock %}
 
 {% block style %}
-<style>
-{% include "templates/includes/projects.css" %}
-</style>
+	<style>
+		{% include "templates/includes/projects.css" %}
+	</style>
 {% endblock %} 
 
 
@@ -50,15 +50,15 @@
 			href='/tasks?new=1&project={{ doc.project_name }}'>New</a>
 			<h3>{{ _("Tasks") }}</h3>
 		</div>
-		<div class="btn-group btn-toggle"> 	
-			<button class="btn btn-xs btn-open-tasks" style="float:left;">Open</button>
-			<button class="btn btn-xs btn-closed-tasks">Close</button>	
+		<div class="btn-group btn-toggle"> 
+			<button class="btn btn-link btn-open-tasks"><span class="indicator orange"></span>Open</button>
+			<button class="btn btn-link btn-closed-tasks"><span class="indicator green"></span>Closed</button>	
 		</div>
 		<div class='project-tasks'>
 		{% include "erpnext/templates/includes/projects/project_tasks.html" %}
 		</div>
 
-		{% if doc.tasks|length > 4 %}
+		{% if doc.tasks|length > 9 %}
 			<p><a id= 'more-tasks' class='more-tasks small underline'>{{ _("More") }}</a><p>
 		{% endif %}
 	</div>
@@ -73,15 +73,15 @@
 			href='/issues?new=1&project={{ doc.project_name }}'>New</a>
 			<h3>{{ _("Issues") }}</h3>
 		</div>
-		<div class="btn-group btn-toggle"> 	
-			<button class="btn btn-xs btn-open-issues" style="float:left;">Open</button>
-			<button class="btn btn-xs btn-closed-issues">Close</button>	
+		<div class="btn-group btn-toggle"> 
+			<button class="btn btn-link btn-open-issues"><span class="indicator red"></span>Open</button>
+			<button class="btn btn-link btn-closed-issues"><span class="indicator green"></span>Closed</button>	
 		</div>
 		<div class='project-issues'>
 		{% include "erpnext/templates/includes/projects/project_issues.html" %}
 		</div>
 
-		{% if doc.issues|length > 4 %}
+		{% if doc.issues|length > 9 %}
 			<p><a id='more-issues' class='more-issues small underline'>{{ _("More") }}</a><p>
 		{% endif %}
 	</div>	
@@ -94,7 +94,7 @@
 	<div class='project-timelogs'>
 	{% include "erpnext/templates/includes/projects/project_timelogs.html" %}
 	</div>
-	{% if doc.timelogs|length > 1 %}
+	{% if doc.timelogs|length > 9 %}
 		<p><a class='more-timelogs small underline'>{{ _("More") }}</a><p>
 	{% endif %}
 {% else %}
@@ -106,4 +106,4 @@
 	{% include "erpnext/templates/pages/projects.js" %}
 </script>
 
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/erpnext/templates/pages/projects.js b/erpnext/templates/pages/projects.js
index b1468eb..331c2d4 100644
--- a/erpnext/templates/pages/projects.js
+++ b/erpnext/templates/pages/projects.js
@@ -61,8 +61,8 @@
 			success: function(data) {
 				$('.project-'+ item).html(data.message);
 				
-				$('.project-'+ item +'-section .btn-group .btn-primary').removeClass('btn-primary');
-				$('.btn-'+ item_status +'-'+ item).addClass( "btn-primary" );
+				$('.project-'+ item +'-section .btn-group .bold').removeClass('bold');
+				$('.btn-'+ item_status +'-'+ item).addClass( "bold" );
 				$(".more-"+ item).toggle(true);
 			}
 		});	
@@ -117,4 +117,4 @@
 		})
 		return false;
 	}
-});
+});
\ No newline at end of file
diff --git a/erpnext/templates/pages/projects.py b/erpnext/templates/pages/projects.py
index 758113f..0b084b4 100644
--- a/erpnext/templates/pages/projects.py
+++ b/erpnext/templates/pages/projects.py
@@ -71,12 +71,14 @@
 		limit_start=start, limit_page_length=10)	
 		
 	for task in tasks:
+		print task._comments
 		task.todo = frappe.get_all('ToDo',filters={'reference_name':task.name, 'reference_type':'Task'},
 		fields=["assigned_by", "owner", "modified", "modified_by"])
 		if task.todo:
 			task.todo=task.todo[0]
 			task.todo.user_image = frappe.db.get_value('User', task.todo.owner, 'user_image')
-			
+		if task._comments:
+			task.comment_count = len(json.loads(_comments or "[]"))				
 	return tasks
 
 @frappe.whitelist()
