diff -ubBr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages --exclude=settings.php Upload/global.php forum/global.php
--- Upload/global.php	2006-09-03 14:55:56.000000000 +0200
+++ forum/global.php	2006-09-08 12:49:31.000000000 +0200
@@ -268,10 +269,26 @@
 
 $unreadreports = '';
 // This user is a moderator, super moderator or administrator
-if($mybb->usergroup['cancp'] == "yes" || $mybb->usergroup['issupermod'] == "yes" || $mybb->user['usergroup'] == 6)
+// KK: reported_posts_4_moderators.mod
+//if($mybb->usergroup['cancp'] == "yes" || $mybb->usergroup['issupermod'] == "yes" || $mybb->user['usergroup'] == 6)
+$grupy = explode(",", $mybbgroups); // KK: reported_posts_4_moderators.mod
+if($mybb->usergroup['cancp'] == "yes" || $mybb->usergroup['issupermod'] == "yes" || in_array("6", $grupy)) // KK: reported_posts_4_moderators.mod
 {
 	// Read the reported posts cache
 	$reported = $cache->read("reportedposts");
+	// KK: reported_posts_4_moderators.mod
+	$reported['unread'] = 0 ;
+	if (is_array($reported['fids']))
+	{
+		foreach ($reported['fids'] as $reported_fid => $reports_in_fid)
+		{
+			if (is_moderator($reported_fid) == 'yes')
+			{
+				$reported['unread'] += $reports_in_fid ;
+			}
+		}
+	}
+	// KK^
 
 	// 0 or more reported posts currently exist
 	if($reported['unread'] > 0)
diff -ubBr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages --exclude=settings.php Upload/inc/class_datacache.php forum/inc/class_datacache.php
--- Upload/inc/class_datacache.php	2006-09-03 15:02:40.000000000 +0200
+++ forum/inc/class_datacache.php	2006-09-08 12:39:36.000000000 +0200
@@ -382,6 +382,13 @@
 		$total = $db->fetch_array($query);
 		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "dateline", "reportstatus='0'", array('order_by' => 'dateline', 'order_dir' => 'DESC'));
 		$latest = $db->fetch_array($query);
+		// KK: reported_posts_4_moderators.mod
+		$query = $db->query("SELECT fid, COUNT(rid) as num FROM ".TABLE_PREFIX."reportedposts WHERE reportstatus='0' GROUP BY fid");
+		while ($fids = $db->fetch_array($query))
+		{
+			$reports['fids'][$fids['fid']] = $fids['num'];
+		}
+		// KK^
 		$reports['unread'] = $num['unreadcount'];
 		$reports['total'] = $total['reportcount'];
 		$reports['lastdateline'] = $latest['dateline'];
diff -ubBr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages --exclude=settings.php Upload/moderation.php forum/moderation.php
--- Upload/moderation.php	2006-09-03 15:09:16.000000000 +0200
+++ forum/moderation.php	2006-09-11 15:56:50.000000000 +0200
@@ -1243,14 +1244,26 @@
 			error_no_permission();
 		}
 		$flist = '';
+ 		$fchild_list= ""; // KK: reported_posts_4_moderators.mod
 		if($mybb->usergroup['issupermod'] != "yes")
 		{
 			$query = $db->simple_select(TABLE_PREFIX."moderators", "*", "uid='".$mybb->user['uid']."'");
 			while($forum = $db->fetch_array($query))
 			{
 				$flist .= ",'".$forum['fid']."'";
+				$fchild_list .= ($fchild_list ? " OR " : "WHERE ") . "CONCAT(',',parentlist,',') LIKE '%," . $forum['fid'] . ",%'"; // KK: reported_posts_4_moderators.mod
+			}
+      // KK: reported_posts_4_moderators.mod :
+			if($flist)
+			{
+				$query = $db->query("SELECT * FROM ".TABLE_PREFIX."forums $fchild_list");
+				while($forum = $db->fetch_array($query))
+				{
+					$flist .= ",'".$forum['fid']."'";
 			}
 		}
+      // KK^
+		}
 		if($flist)
 		{
 			$flist = "AND fid IN (0$flist)";
@@ -1290,12 +1304,40 @@
 			$page = intval($mybb->input['page']);
 		}
 		
-		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "reportstatus ='0'");
+		// KK: reported_posts_4_moderators.mod
+		// Wyciaganie listy forow, w ktorych moderuje user
+		$flist = "";
+		$flist_rfid = "";
+		$fchild_list= "";
+		if($mybb->usergroup['issupermod'] != "yes")
+		{
+			$query = $db->simple_select(TABLE_PREFIX."moderators", "*", "uid='".$mybb->user['uid']."'");
+			while($forum = $db->fetch_array($query))
+			{
+				$flist .= ",'".$forum['fid']."'";
+				$fchild_list .= ($fchild_list ? " OR " : "WHERE ") . "CONCAT(',',parentlist,',') LIKE '%," . $forum['fid'] . ",%'";
+			}
+			if($flist)
+			{
+				$query = $db->query("SELECT * FROM ".TABLE_PREFIX."forums $fchild_list");
+				while($forum = $db->fetch_array($query))
+				{
+					$flist .= ",'".$forum['fid']."'";
+				}
+				$flist_rfid = "AND r.fid IN (0$flist)";
+				$flist = "AND fid IN (0$flist)";
+			}
+		}
+		//KK^
+
+//		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "reportstatus ='0'");
+		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "reportstatus ='0' $flist"); // KK: reported_posts_4_moderators.mod
 		$warnings = $db->fetch_field($query, "count");
 		
 		if($mybb->input['rid'])
 		{
-			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(r.rid) AS count", "r.rid <= '".$mybb->input['rid']."'");
+//			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(r.rid) AS count", "r.rid <= '".$mybb->input['rid']."'");
+			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(r.rid) AS count", "r.rid <= '".$mybb->input['rid']."' $flist"); // KK: reported_posts_4_moderators.mod
 			$result = $db->fetch_field($query, "count");
 			if(($result % $perpage) == 0)
 			{
@@ -1350,10 +1392,11 @@
 			LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid)
 			LEFT JOIN ".TABLE_PREFIX."users u ON (r.uid=u.uid)
 			LEFT JOIN ".TABLE_PREFIX."users up ON (p.uid=up.uid)
-			WHERE r.reportstatus ='0'
+			WHERE r.reportstatus ='0' $flist_rfid
 			ORDER BY r.dateline ASC
 			LIMIT $start, $perpage
-		");
+		"); // KK: reported_posts_4_moderators.mod - added "$flist_rfid" in WHERE
+
 		while($report = $db->fetch_array($query))
 		{
 			$trow = alt_trow();
@@ -1384,12 +1427,40 @@
 			$page = intval($mybb->input['page']);
 		}
 		
-		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count");
+		// KK: reported_posts_4_moderators.mod
+		// Wyciaganie listy forow, w ktorych moderuje user
+		$flist = "";
+		$flist_rfid_where = "";
+		$fchild_list= "";
+		if($mybb->usergroup['issupermod'] != "yes")
+		{
+			$query = $db->simple_select(TABLE_PREFIX."moderators", "*", "uid='".$mybb->user['uid']."'");
+			while($forum = $db->fetch_array($query))
+			{
+				$flist .= ",'".$forum['fid']."'";
+				$fchild_list .= ($fchild_list ? " OR " : "WHERE ") . "CONCAT(',',parentlist,',') LIKE '%," . $forum['fid'] . ",%'";
+			}
+			if($flist)
+			{
+				$query = $db->query("SELECT * FROM ".TABLE_PREFIX."forums $fchild_list");
+				while($forum = $db->fetch_array($query))
+				{
+					$flist .= ",'".$forum['fid']."'";
+				}
+        $flist_rfid_where = "WHERE r.fid IN (0$flist)" ;
+				$flist = "fid IN (0$flist)";
+			}
+		}
+		//KK^
+
+//		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count");
+		$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "$flist"); // KK: reported_posts_4_moderators.mod
 		$warnings = $db->fetch_field($query, "count");
 		
 		if($mybb->input['rid'])
 		{
-			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "rid <= '".$mybb->input['rid']."'");
+//			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "rid <= '".$mybb->input['rid']."'");
+			$query = $db->simple_select(TABLE_PREFIX."reportedposts", "COUNT(rid) AS count", "rid <= '".$mybb->input['rid']."' AND $flist"); // KK: reported_posts_4_moderators.mod
 			$result = $db->fetch_field($query, "count");
 			if(($result % $perpage) == 0)
 			{
@@ -1444,9 +1515,10 @@
 			LEFT JOIN ".TABLE_PREFIX."threads t ON (p.tid=t.tid)
 			LEFT JOIN ".TABLE_PREFIX."users u ON (r.uid=u.uid)
 			LEFT JOIN ".TABLE_PREFIX."users up ON (p.uid=up.uid)
+      $flist_rfid_where
 			ORDER BY r.dateline ASC
 			LIMIT $start, $perpage
-		");
+		"); // KK: reported_posts_4_moderators.mod - added "$flist_rfid_where"
 		while($report = $db->fetch_array($query))
 		{
 			$reportdate = my_date($mybb->settings['dateformat'], $report['dateline']);

