diff -Eruw mantis-1.1.0a2/bug_assign.php net.swordcoast.bugtrack/bug_assign.php
--- mantis-1.1.0a2/bug_assign.php	2005-06-15 00:00:32.000000000 +0200
+++ net.swordcoast.bugtrack/bug_assign.php	2007-02-11 14:18:37.063207500 +0100
@@ -43,7 +43,7 @@
 
 	if ( $f_handler_id != NO_USER ) {
 		# check that new handler has rights to handle the issue
-		access_ensure_bug_level( config_get( 'handle_bug_threshold' ), $f_bug_id, $f_handler_id );
+		# access_ensure_bug_level( config_get( 'handle_bug_threshold' ), $f_bug_id, $f_handler_id );
 
 		if ( $t_bug_sponsored ) {
 			if ( !access_has_bug_level( config_get( 'handle_sponsored_bugs_threshold' ), $f_bug_id, $f_handler_id ) ) {
Only in net.swordcoast.bugtrack: config_inc.php
diff -Eruw mantis-1.1.0a2/core/access_api.php net.swordcoast.bugtrack/core/access_api.php
--- mantis-1.1.0a2/core/access_api.php	2005-05-12 18:04:09.000000000 +0200
+++ net.swordcoast.bugtrack/core/access_api.php	2007-02-11 14:06:03.744128000 +0100
@@ -326,11 +326,21 @@
 		  return false;
 		}
 
-		# If the bug is private and the user is not the reporter, then the
-		#  the user must also have higher access than private_bug_threshold
-		if ( VS_PRIVATE == bug_get_field( $p_bug_id, 'view_state' ) &&
-			 !bug_is_user_reporter( $p_bug_id, $p_user_id ) ) {
-			$p_access_level = max( $p_access_level, config_get( 'private_bug_threshold' ) );
+		# If the bug is private and the user
+		# * is not administrator AND
+		# * is not reporter AND
+		# * is not the currently assigned-to AND
+		# * private_bug_treshold should be lower or equal to the users' project access 
+		if ( VS_PRIVATE == bug_get_field( $p_bug_id, 'view_state' )) {
+			if  (
+				bug_is_user_handler( $p_bug_id, $p_user_id ) ||
+			 	bug_is_user_reporter( $p_bug_id, $p_user_id ) ||
+				user_is_administrator( $p_user_id )
+			 ) {
+				$p_access_level = VIEWER; // max( $p_access_level, config_get( 'private_bug_threshold' ) );
+			} else {
+				return false;
+			}
 		}
 
 		return access_has_project_level( $p_access_level, $t_project_id, $p_user_id );
diff -Eruw mantis-1.1.0a2/core/columns_api.php net.swordcoast.bugtrack/core/columns_api.php
--- mantis-1.1.0a2/core/columns_api.php	2006-11-11 08:38:00.000000000 +0100
+++ net.swordcoast.bugtrack/core/columns_api.php	2007-02-11 15:01:06.638546000 +0100
@@ -616,6 +616,10 @@
 				, lang_get( 'private' )
 				, lang_get( 'private' )
 			);
+			// Get users who have access to this bug
+			// and print them
+			// TODO
+			// printf("<sub>(Users: %s)</sub>", "");
 		}
 		echo '</td>';
 	}
diff -Eruw mantis-1.1.0a2/core/filter_api.php net.swordcoast.bugtrack/core/filter_api.php
--- mantis-1.1.0a2/core/filter_api.php	2006-10-31 09:43:58.000000000 +0100
+++ net.swordcoast.bugtrack/core/filter_api.php	2007-02-11 14:37:53.103455500 +0100
@@ -180,26 +180,28 @@
 		}
 
 		# private bug selection
-		if ( !access_has_project_level( config_get( 'private_bug_threshold' ), $t_project_id, $t_user_id ) ) {
+		
+
+		# if ( !access_has_project_level( config_get( 'private_bug_threshold' ), $t_project_id, $t_user_id ) ) {
 			$t_public = VS_PUBLIC;
 			$t_private = VS_PRIVATE;
 			switch ( $t_filter['view_state'] ) {
 				case META_FILTER_ANY:
-					array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public' OR $t_bug_table.reporter_id='$t_user_id')" );
+				array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public' OR $t_bug_table.reporter_id='$t_user_id' OR $t_bug_table.handler_id='$t_user_id')" );
 					break;
 				case VS_PUBLIC:
 					array_push( $t_where_clauses, "($t_bug_table.view_state='$t_public')" );
 					break;
 				case VS_PRIVATE:
-					array_push( $t_where_clauses, "($t_bug_table.view_state='$t_private' AND $t_bug_table.reporter_id='$t_user_id')" );
+				array_push( $t_where_clauses, "($t_bug_table.view_state='$t_private' AND ($t_bug_table.reporter_id='$t_user_id' OR $t_bug_table.handler_id='$t_user_id')");
 					break;
 			}
-		} else {
-			$t_view_state = db_prepare_int( $t_filter['view_state'] );
-			if ( ( $t_filter['view_state'] !== META_FILTER_ANY ) && ( !is_blank( $t_filter['view_state'] ) ) ) {
-				array_push( $t_where_clauses, "($t_bug_table.view_state='$t_view_state')" );
-			}
-		}
+		#} else {
+		#	$t_view_state = db_prepare_int( $t_filter['view_state'] );
+		#	if ( ( $t_filter['view_state'] !== META_FILTER_ANY ) && ( !is_blank( $t_filter['view_state'] ) ) ) {
+		#		array_push( $t_where_clauses, "($t_bug_table.view_state='$t_view_state')" );
+		#	}
+		#}
 
 		# reporter
 		$t_any_found = false;
diff -Eruw mantis-1.1.0a2/core/html_api.php net.swordcoast.bugtrack/core/html_api.php
--- mantis-1.1.0a2/core/html_api.php	2006-12-08 07:28:42.000000000 +0100
+++ net.swordcoast.bugtrack/core/html_api.php	2007-02-11 13:08:52.625696500 +0100
@@ -294,9 +294,11 @@
 				$t_align = 'left';
 			}
 
+//			if ( is_page_name ('login_page') ) {
 			echo '<div align="', $t_align, '">';
 			echo '<a href="http://www.mantisbt.org" title="Free Web Based Bug Tracker"><img border="0" width="242" height="102" alt="Mantis Bugtracker" src="images/mantis_logo.gif" /></a>';
 			echo '</div>';
+//			}
 		}
 	}
