diff --git a/src/posts.js b/src/posts.js
index 054ae82a52..e17e22f300 100644
--- a/src/posts.js
+++ b/src/posts.js
@@ -135,38 +135,29 @@ var db = require('./database'),
 				}
 
 				Posts.getCidByPid(postData.pid, function(err, cid) {
+					if(err) {
+						return callback(err, null);
+					}
+
 					db.delete('cid:' + cid + ':read_by_uid');
 				});
 
-				async.parallel([
-					function(next) {
-						topics.markUnRead(tid, function(err) {
-							if(err) {
-								return next(err);
-							}
-							topics.markAsRead(tid, uid);
-							next();
-						});
-					},
-					function(next) {
-						topics.pushUnreadCount(null, next);
-					},
-					function(next) {
-						threadTools.notifyFollowers(tid, uid);
-						next();
-					},
-					function(next) {
-						Posts.addUserInfoToPost(postData, function(err) {
-							if(err) {
-								return next(err);
-							}
-							next();
-						});
+				topics.markAsUnreadForAll(tid, function(err) {
+					if(err) {
+						return callback(err, null);
 					}
-				], function(err, results) {
+
+					topics.markAsRead(tid, uid);
+					topics.pushUnreadCount();
+				});
+
+				threadTools.notifyFollowers(tid, uid);
+				
+				Posts.addUserInfoToPost(postData, function(err) {
 					if(err) {
 						return callback(err, null);
 					}
+
 					callback(null, postData);
 				});
 			});
diff --git a/src/topics.js b/src/topics.js
index f5a496bc77..8e5f4a3f43 100644
--- a/src/topics.js
+++ b/src/topics.js
@@ -701,7 +701,7 @@ var async = require('async'),
 		});
 	}
 
-	Topics.markUnRead = function(tid, callback) {
+	Topics.markAsUnreadForAll = function(tid, callback) {
 		db.delete('tid:' + tid + ':read_by_uid', callback);
 	}