diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index e18881edfe..be38d66057 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -85,9 +85,9 @@ var ajaxify = {};
 					callback();
 				}
 
-				jQuery('#content, #footer').stop(true, true).fadeIn(200, function () {
+				app.process_page();
 
-					app.process_page();
+				jQuery('#content, #footer').stop(true, true).fadeIn(200, function () {
 					if (window.location.hash)
 						hash = window.location.hash;
 					if (hash)
diff --git a/public/templates/category.tpl b/public/templates/category.tpl
index 6d23ffc495..6ef28a0ed1 100644
--- a/public/templates/category.tpl
+++ b/public/templates/category.tpl
@@ -32,30 +32,47 @@
 			<li class="category-item {topics.deleted-class}" itemprop="itemListElement">
 				<div class="row">
 					<div class="col-md-12 topic-row">
-						<div class="latest-post visible-lg visible-md">
-							<a href="../../topic/{topics.slug}#{topics.teaser_pid}">
-								<div class="pull-right">
-									<img class="img-rounded" style="width: 48px; height: 48px; /*temporary*/" src="{topics.teaser_userpicture}" />
-									<p>{topics.teaser_text}</p>
-									<p class="meta">
-										<strong>{topics.teaser_username}</strong> posted <span class="timeago" title="{topics.teaser_timestamp}"></span>
-									</p>
-								</div>
-							</a>
-						</div>
-						<a href="../../topic/{topics.slug}" itemprop="url">
-							<div>
+						<div>
+							<a href="../../topic/{topics.slug}" itemprop="url">
 								<h3>
 									<meta itemprop="name" content="{topics.title}">
-									<span class="topic-title"><span class="badge {topics.badgeclass}">{topics.postcount}</span>{topics.title}</span>
+
+									<span class="topic-title">
+										<strong><i class="{topics.pin-icon}"></i> <i class="{topics.lock-icon}"></i></strong>
+										{topics.title}</span>
 								</h3>
-								<small>
-									<strong><i class="{topics.pin-icon}"></i> <i class="{topics.lock-icon}"></i></strong>
-									Posted <span class="timeago" title="{topics.relativeTime}"></span> by
-									<strong>{topics.username}</strong>.
-								</small>
-							</div>
-						</a>
+							</a>
+							<small>
+								<span class="topic-stats">
+									<span class="badge {topics.badgeclass}">{topics.postcount}</span> posts
+								</span>
+								<span class="topic-stats">
+									<span class="badge {topics.badgeclass}">{topics.viewcount}</span> views
+								</span>
+
+								<span class="pull-right hidden-xs">
+
+									<a href="/user/{topics.userslug}">
+										<img class="img-rounded teaser-pic" src="{topics.picture}" title="{topics.username}"/>
+									</a>
+
+									<a href="../../topic/{topics.slug}">
+										<span>
+											posted <span class="timeago" title="{topics.relativeTime}"></span>
+										</span>
+									</a>
+									|
+									<a href="/user/{topics.teaser_userslug}">
+										<img class="img-rounded teaser-pic" src="{topics.teaser_userpicture}" title="{topics.teaser_username}"/>
+									</a>
+									<a href="../../topic/{topics.slug}#{topics.teaser_pid}">
+										<span>
+										 	replied <span class="timeago" title="{topics.teaser_timestamp}"></span>
+										</span>
+									</a>
+								</span>
+							</small>
+						</div>
 					</div>
 				</div>
 			</li>
diff --git a/src/topics.js b/src/topics.js
index 57c500b4c9..94551b5350 100644
--- a/src/topics.js
+++ b/src/topics.js
@@ -36,10 +36,12 @@ var RDB = require('./redis.js'),
 		});
 	}
 
-	Topics.getTopicDataWithUsername = function(tid, callback) {
+	Topics.getTopicDataWithUser = function(tid, callback) {
 		Topics.getTopicData(tid, function(topic) {
-			user.getUserField(topic.uid, 'username', function(err, username) {
-				topic.username = username;
+			user.getUserFields(topic.uid, ['username', 'userslug', 'picture'] , function(err, userData) {
+				topic.username = userData.username;
+				topic.userslug = userData.userslug
+				topic.picture = userData.picture;
 				callback(topic);
 			});
 		});
@@ -281,7 +283,7 @@ var RDB = require('./redis.js'),
 		function getTopicInfo(topicData, callback) {
 
 			function getUserInfo(next) {
-				user.getUserFields(topicData.uid, ['username'], next);
+				user.getUserFields(topicData.uid, ['username', 'userslug', 'picture'], next);
 			}
 
 			function hasReadTopic(next) {
@@ -307,6 +309,8 @@ var RDB = require('./redis.js'),
 			async.parallel([getUserInfo, hasReadTopic, getTeaserInfo, getPrivileges], function(err, results) {
 				callback({
 					username: results[0].username,
+					userslug: results[0].userslug,
+					picture: results[0].picture,
 					userbanned: results[0].banned,
 					hasread: results[1],
 					teaserInfo: results[2],
@@ -333,9 +337,12 @@ var RDB = require('./redis.js'),
 					topicData['deleted-class'] = topicData.deleted === '1' ? 'deleted' : '';
 
 					topicData.username = topicInfo.username;
+					topicData.userslug = topicInfo.userslug;
+					topicData.picture = topicInfo.picture;
 					topicData.badgeclass = (topicInfo.hasread && current_user != 0) ? '' : 'badge-important';
 					topicData.teaser_text = topicInfo.teaserInfo.text || '',
 					topicData.teaser_username = topicInfo.teaserInfo.username || '';
+					topicData.teaser_userslug = topicInfo.teaserInfo.userslug || '';
 					topicData.teaser_userpicture = topicInfo.teaserInfo.picture || require('gravatar').url('', {}, https = nconf.get('https'));
 					topicData.teaser_pid = topicInfo.teaserInfo.pid;
 
@@ -427,7 +434,7 @@ var RDB = require('./redis.js'),
 	Topics.getTopicForCategoryView = function(tid, uid, callback) {
 
 		function getTopicData(next) {
-			Topics.getTopicDataWithUsername(tid, function(topic) {
+			Topics.getTopicDataWithUser(tid, function(topic) {
 				next(null, topic);
 			});
 		}
@@ -461,6 +468,7 @@ var RDB = require('./redis.js'),
 			topicData.badgeclass = hasRead ? '' : 'badge-important';
 			topicData.teaser_text = teaser.text || '';
 			topicData.teaser_username = teaser.username || '';
+			topicData.teaser_userslug = teaser.userslug || '';
 			topicData.userslug = teaser.userslug || '';
 			topicData.teaser_timestamp = teaser.timestamp ? (new Date(parseInt(teaser.timestamp,10)).toISOString()) : '';
 			topicData.teaser_userpicture = teaser.picture;
@@ -501,7 +509,7 @@ var RDB = require('./redis.js'),
 			});
 
 			async.each(tids, function(tid, next) {
-				Topics.getTopicDataWithUsername(tid, function(topicData) {
+				Topics.getTopicDataWithUser(tid, function(topicData) {
 					topics.push(topicData);
 					next();
 				});