diff --git a/src/common/check_paths.py b/src/common/check_paths.py
index 175e0e212d34775742977f2184339cd60b9d8673..24dfc842bcb0a0dfc53901986fb03442b3ab6493 100644
--- a/src/common/check_paths.py
+++ b/src/common/check_paths.py
@@ -43,7 +43,8 @@ def assert_unread_msgs_table_exists():
 		cur.executescript(
 			'''
 			CREATE TABLE unread_messages (
-				message_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE
+				message_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
+				jid_id INTEGER
 			);
 			'''
 		)
diff --git a/src/common/logger.py b/src/common/logger.py
index f03553667d9e13dcb416f6d59e715eabb80154aa..27a9af074c83839e434cc7beb616924a5f2951d3 100644
--- a/src/common/logger.py
+++ b/src/common/logger.py
@@ -206,12 +206,12 @@ def commit_to_db(self, values, write_unread = False):
 		except sqlite.OperationalError, e:
 			print >> sys.stderr, str(e)
 		if message_id:
-			self.insert_unread_events(message_id)
+			self.insert_unread_events(message_id, values[0])
 		return message_id
 	
-	def insert_unread_events(self, message_id):
+	def insert_unread_events(self, message_id, jid_id):
 		''' add unread message with id: message_id'''
-		sql = 'INSERT INTO unread_messages VALUES (%d)' % message_id
+		sql = 'INSERT INTO unread_messages VALUES (%d, %d)' % (message_id, jid_id)
 		self.cur.execute(sql)
 		try:
 			self.con.commit()
@@ -234,14 +234,20 @@ def get_unread_msgs_for_jid(self, jid):
 			return
 		jid = jid.lower()
 		jid_id = self.get_jid_id(jid)
-		self.cur.execute('''
-			SELECT message_id, message, time, subject FROM logs, unread_messages 
-			WHERE jid_id = %d AND log_line_id = message_id ORDER BY time ASC 
-			''' % (jid_id)
-			)
-
+		all_messages = []
+		self.cur.execute(
+			'SELECT message_id from unread_messages WHERE jid_id = %d' % jid_id)
 		results = self.cur.fetchall()
-		return results
+		for message in results:
+			msg_id = message[0]
+			self.cur.execute('''
+				SELECT log_line_id, message, time, subject FROM logs
+				WHERE jid_id = %d AND log_line_id = %d
+				''' % (jid_id, msg_id)
+				)
+			results = self.cur.fetchall()
+			all_messages.append(results[0])
+		return all_messages
 		
 	def write(self, kind, jid, message = None, show = None, tim = None,
 	subject = None):