diff -Pur mantis-1.1.2/account_prefs_page.php bugs-test/account_prefs_page.php
--- mantis-1.1.2/account_prefs_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/account_prefs_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -60,6 +60,8 @@
 	html_page_top1( lang_get( 'change_preferences_link' ) );
 	html_page_top2();
 
+	echo '<div style="text-align: center; border: 2px solid red;">Editing of account preferences is currently disabled due to a security vulnerability in Mantis. A fix is available and will be applied soon.</div>';
+
 	edit_account_prefs();
 
 	html_page_bottom1( __FILE__ );
diff -Pur mantis-1.1.2/account_prof_menu_page.php bugs-test/account_prof_menu_page.php
--- mantis-1.1.2/account_prof_menu_page.php	2008-06-14 00:58:36.000000000 +0100
+++ bugs-test/account_prof_menu_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -70,7 +70,8 @@
 	}
 ?>
 
-<?php # Add Profile Form BEGIN ?>
+<?php # Add Profile Form BEGIN
+/*
 <br />
 <div align="center">
 <form method="post" action="account_prof_update.php">
@@ -133,7 +134,7 @@
 </table>
 </form>
 </div>
-<?php # Add Profile Form END ?>
+*/ # Add Profile Form END ?>
 
 <?php # Edit or Delete Profile Form BEGIN ?>
 <?php 
@@ -145,6 +146,8 @@
 <form method="post" action="account_prof_update.php">
 <?php  echo form_security_field( 'profile_update' )?>
 <table class="width75" cellspacing="1">
+<?php
+/*
 <tr>
 	<td class="form-title" colspan="2">
 		<?php echo lang_get( 'edit_or_delete_profiles_title' ) ?>
@@ -163,6 +166,7 @@
 		<input type="radio" name="action" value="delete" /> <?php echo lang_get( 'delete_profile' ) ?>
 	</td>
 </tr>
+*/?>
 <tr class="row-2">
 	<td class="category" width="25%">
 		<?php echo lang_get( 'select_profile' ) ?>
@@ -173,9 +177,10 @@
 		</select>
 	</td>
 </tr>
+<input type="hidden" name="action" value="default" />
 <tr>
 	<td class="center" colspan="2">
-		<input type="submit" class="button" value="<?php echo lang_get( 'submit_button' ) ?>" />
+		<input type="submit" class="button" value="<?php echo lang_get( 'make_default' ) ?>" />
 	</td>
 </tr>
 </table>
Only in mantis-1.1.2: admin
diff -Pur mantis-1.1.2/bug_actiongroup_page.php bugs-test/bug_actiongroup_page.php
--- mantis-1.1.2/bug_actiongroup_page.php	2008-06-05 07:29:11.000000000 +0100
+++ bugs-test/bug_actiongroup_page.php	2008-07-03 19:33:53.000000000 +0100
@@ -31,6 +31,7 @@
 	auth_ensure_user_authenticated();
 
 	$f_action = gpc_get_string( 'action', '' );
+	$f_force = gpc_get_string( 'force', '' );
 	$f_bug_arr = gpc_get_int_array( 'bug_arr', array() );
 
 	# redirects to all_bug_page if nothing is selected
@@ -89,6 +90,12 @@
 
 	switch ( $f_action )  {
 		# Use a simple confirmation page, if close or delete...
+		case 'CLOSE_CONFIRM' :
+			$t_finished			= true;
+			$t_question_title		= 'Confirm bug resolution?';
+			$t_button_title			= 'Confirm Resolution';
+			break;
+
 		case 'CLOSE' :
 			$t_finished 			= true;
 			$t_question_title 		= lang_get( 'close_bugs_conf_msg' );
@@ -168,10 +175,13 @@
 			break;
 
 		case 'VIEW_STATUS' :
+			$t_finished = ($f_force == 'TRUE');
 			$t_question_title		= lang_get( 'view_status_bugs_conf_msg' );
 			$t_button_title			= lang_get( 'view_status_group_bugs_button' );
-			$t_form					= 'view_status';
-			$t_form_name			= 'bug_update_view_status';
+			if (!$t_finished) {
+				$t_form					= 'view_status';
+				$t_form_name			= 'bug_update_view_status';
+			}
 			break;
 		
 		case 'UP_FIXED_IN_VERSION':
@@ -226,6 +236,7 @@
 ?>
 <table class="width75" cellspacing="1">
 <?php
+echo '<input type="hidden" name="force" value="'.$f_force.'">';
 if ( !$t_finished ) {
 ?>
 <tr class="row-1">
diff -Pur mantis-1.1.2/bug_actiongroup.php bugs-test/bug_actiongroup.php
--- mantis-1.1.2/bug_actiongroup.php	2008-06-08 21:32:19.000000000 +0100
+++ bugs-test/bug_actiongroup.php	2008-07-03 19:20:51.000000000 +0100
@@ -69,6 +69,7 @@
 
 		switch ( $f_action ) {
 
+		case 'CLOSE_CONFIRM':
 		case 'CLOSE':
 			if ( $t_first_issue ) {
 				form_security_validate( 'bug_close' );
@@ -291,7 +292,13 @@
 			}
 
 			if ( access_has_bug_level( config_get( 'change_view_status_threshold' ), $t_bug_id ) ) {
+				if (gpc_get_string('force', '') == 'TRUE') {
+					$f_view_status = bug_get_field($t_bug_id, 'view_state');
+					if ($f_view_status == VS_PRIVATE) { $f_view_status = VS_PUBLIC; }
+					else { $f_view_status = VS_PRIVATE; }
+				} else {
 				$f_view_status = gpc_get_int( 'view_status' );
+				}
 				# @@@ we need to issue a helper_call_custom_function( 'issue_update_validate', array( $t_bug_id, $t_bug_data, $f_bugnote_text ) );
 				bug_set_field( $t_bug_id, 'view_state', $f_view_status );
 				helper_call_custom_function( 'issue_update_notify', array( $t_bug_id ) );
diff -Pur mantis-1.1.2/bug_file_upload_inc.php bugs-test/bug_file_upload_inc.php
--- mantis-1.1.2/bug_file_upload_inc.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/bug_file_upload_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -35,18 +35,15 @@
 
 	$t_max_file_size = (int)min( ini_get_number( 'upload_max_filesize' ), ini_get_number( 'post_max_size' ), config_get( 'max_file_size' ) );
 ?>
-<br />
 
 <?php
 	collapse_open( 'upload_form' );
 ?>
 <form method="post" enctype="multipart/form-data" action="bug_file_add.php">
-<table class="width100" cellspacing="1">
+<table class="width100" cellspacing="1" style="border: 0px; margin-top: 10px;">
 <tr>
-	<td class="form-title" colspan="2">
-<?php
-		collapse_icon( 'upload_form' );
-		echo lang_get( 'upload_file' ) ?>
+	<td class="form-title" colspan="2" style="border: 0;">
+		<h2><?php echo lang_get( 'upload_file' ) ?></h2>
 	</td>
 </tr>
 <tr class="row-1">
diff -Pur mantis-1.1.2/bugnote_add_inc.php bugs-test/bugnote_add_inc.php
--- mantis-1.1.2/bugnote_add_inc.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/bugnote_add_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -24,26 +24,24 @@
 <?php if ( ( !bug_is_readonly( $f_bug_id ) ) &&
 		( access_has_bug_level( config_get( 'add_bugnote_threshold' ), $f_bug_id ) ) ) { ?>
 <?php # Bugnote Add Form BEGIN ?>
-<a name="addbugnote"></a> <br />
+<a name="addbugnote"></a> 
 
 <?php
 	collapse_open( 'bugnote_add' );
 ?>
 <form name="bugnoteadd" method="post" action="bugnote_add.php">
 <input type="hidden" name="bug_id" value="<?php echo $f_bug_id ?>" />
-<table class="width100" cellspacing="1">
+<table class="width100" cellspacing="1" style="border: 0; margin-top: 10px;">
 <tr>
-	<td class="form-title" colspan="2">
-<?php
-	collapse_icon( 'bugnote_add' );
-	echo lang_get( 'add_bugnote_title' ) ?>
+	<td class="form-title" colspan="2" style="border: 0;">
+<?php echo '<h2>', lang_get( 'add_bugnote_title' ), '</h2>'; ?>
 	</td>
 </tr>
 <tr class="row-2">
-	<td class="category" width="25%">
+	<td class="category" width="15%">
 		<?php echo lang_get( 'bugnote' ) ?>
 	</td>
-	<td width="75%">
+	<td>
 		<textarea name="bugnote_text" cols="80" rows="10"></textarea>
 	</td>
 </tr>
@@ -89,7 +87,7 @@
 <?php } ?>
 
 <tr>
-	<td class="center" colspan="2">
+	<td class="center" colspan="2" style="border: 0px;">
 		<input type="submit" class="button" value="<?php echo lang_get( 'add_bugnote_button' ) ?>" />
 	</td>
 </tr>
diff -Pur mantis-1.1.2/bugnote_view_inc.php bugs-test/bugnote_view_inc.php
--- mantis-1.1.2/bugnote_view_inc.php	2008-05-22 04:38:22.000000000 +0100
+++ bugs-test/bugnote_view_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -54,12 +54,20 @@
 ?>
 
 <?php # Bugnotes BEGIN ?>
-<a name="bugnotes" id="bugnotes" /><br />
+<a name="bugnotes" id="bugnotes" />
 
 <?php 
 	collapse_open( 'bugnotes' );
 ?>
-<table class="width100" cellspacing="1">
+<table class="width100" cellspacing="1" style="border: 0; margin-top: 10px;">
+<tr>
+        <td class="form-title" colspan="2" style="border: 0;">
+<?php
+                echo '<h2>'; 
+                echo lang_get( 'bug_notes_title' ), '</h2>'; ?>
+        </td>
+</tr>
+
 <?php
 	# no bugnotes
 	if ( 0 == $num_notes ) {
@@ -70,13 +78,6 @@
 	</td>
 </tr>
 <?php } else { # print bugnotes ?>
-<tr>
-	<td class="form-title" colspan="2">
-<?php
-		collapse_icon( 'bugnotes' ); ?>
-		<?php echo lang_get( 'bug_notes_title' ) ?>
-	</td>
-</tr>
 <?php
 	$t_normal_date_format = config_get( 'normal_date_format' );
 	$t_total_time = 0;
@@ -121,6 +122,9 @@
 		}
 ?>
 <tr class="bugnote" id="c<?php echo $v3_id ?>">
+<?PHP
+ if (!preg_match('/committed in revision ([0-9]+)/', $v3_note, $m)) {
+?>
         <td class="<?php echo $t_bugnote_css ?>">
 		<?php if ( ON  == config_get("show_avatar") ) print_avatar( $v3_reporter_id ); ?>
 		<span class="small">(<?php echo $t_bugnote_id_formatted ?>)</span><br />
@@ -133,7 +137,7 @@
 				echo '(', get_enum_element( 'access_levels', $t_access_level ), ')';
 			} 
 		?></span>
-		<?php if ( VS_PRIVATE == $v3_view_state ) { ?>
+		<?php if ( false && VS_PRIVATE == $v3_view_state ) { ?>
 		<span class="small">[ <?php echo lang_get( 'private' ) ?> ]</span>
 		<?php } ?>
 		<br />
@@ -183,7 +187,35 @@
 		</div>
 	</td>
 	<td class="<?php echo $t_bugnote_note_css ?>">
+<?PHP } else { ?>
+        <td colspan="2">
 		<?php
+ }
+			if (preg_match('/committed in revision ([0-9]+)/', $v3_note, $m)) {
+				$opts = array('http' => array('timeout' => 2.0));
+				$ctx = stream_context_create($opts);
+				$data = @file_get_contents('http://fisheye.dmdirc.com/changelog/DMDIrc/?cs=' . $m[1], FILE_TEXT, $ctx);
+				
+				if ((!$data && $m2[1] = 'Timeout') ||preg_match('#<div class="warning">(.*?)</div>#is', $data, $m2)) {
+					$v3_note .= '<br>Unable to retrieve commit information: ' . $m2[1];
+				} else {
+					if (!defined('DONE_JS')) {
+						preg_match("#fishEyeSTATICDIR = '(.*?)'#", $data, $static);
+						$static = $static[1];
+echo '<script type="text/javascript">fishEyePageContext = "http://fisheye.dmdirc.com"; var fishEyeSTATICDIR = "', $static, '";</script>';
+echo '<script src="http://fisheye.dmdirc.com/', $static, '/prototype.js" type="text/javascript"></script>';
+echo '<script src="http://fisheye.dmdirc.com/', $static, '/changeset_utils.js" type="text/javascript"></script>';
+echo '<script src="http://fisheye.dmdirc.com/', $static, '/global.js" type="text/javascript"></script>';
+
+						define('DONE_JS', 'Yup!');
+					}
+
+					preg_match('#(<table class="layout" cellspacing="0">.*?</table>)#is', $data, $m2);
+					$v3_note = $m2[1];
+					$v3_note = preg_replace('#<div class="controls">.*?</div>#is', '', $v3_note);
+					$v3_note = preg_replace('#(href|src)="/#i', '\1="http://fisheye.dmdirc.com/', $v3_note);
+				}
+			} else {
 			switch ( $v3_note_type ) {
 				case REMINDER:
 					echo '<em>' . lang_get( 'reminder_sent_to' ) . ': ';
@@ -199,14 +231,12 @@
 					}
 					break;
 			}
+			}
 
 			echo $v3_note;
 		?>
 	</td>
 </tr>
-<tr class="spacer">
-	<td colspan="2"></td>
-</tr>
 <?php
 		} # end for loop
 
diff -Pur mantis-1.1.2/bug_report_advanced_page.php bugs-test/bug_report_advanced_page.php
--- mantis-1.1.2/bug_report_advanced_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/bug_report_advanced_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -74,9 +74,10 @@
 	    access_ensure_project_level( config_get( 'report_bug_threshold' ) );
 
 		$f_build				= $t_bug->build;
-		$f_platform				= $t_bug->platform;
-		$f_os					= $t_bug->os;
-		$f_os_build				= $t_bug->os_build;
+# Hide Freeform OS -- Dataforce, 04/01/08
+//		$f_platform				= $t_bug->platform;
+//		$f_os					= $t_bug->os;
+//		$f_os_build				= $t_bug->os_build;
 		$f_product_version		= $t_bug->version;
 		$f_target_version		= $t_bug->target_version;
 		$f_profile_id			= 0;
@@ -97,9 +98,10 @@
 	    access_ensure_project_level( config_get( 'report_bug_threshold' ) );
 
 		$f_build				= gpc_get_string( 'build', '' );
-		$f_platform				= gpc_get_string( 'platform', '' );
-		$f_os					= gpc_get_string( 'os', '' );
-		$f_os_build				= gpc_get_string( 'os_build', '' );
+# Hide Freeform OS -- Dataforce, 04/01/08
+//		$f_platform				= gpc_get_string( 'platform', '' );
+//		$f_os					= gpc_get_string( 'os', '' );
+//		$f_os_build				= gpc_get_string( 'os_build', '' );
 		$f_product_version		= gpc_get_string( 'product_version', '' );
 		$f_target_version		= gpc_get_string( 'target_version', '' );
 		$f_profile_id			= gpc_get_int( 'profile_id', 0 );
@@ -128,26 +130,17 @@
 	print_recently_visited();
 ?>
 
-<br />
 <div align="center">
 <form name="report_bug_form" method="post" <?php if ( file_allow_bug_upload() ) { echo 'enctype="multipart/form-data"'; } ?> action="bug_report.php">
-<table class="width75" cellspacing="1">
+<table class="width75" cellspacing="1" style="border: 0; margin-top: 10px;">
 
 
 <!-- Title -->
 <tr>
-	<td class="form-title">
+	<td class="form-title" style="border: 0;" colspan="2">
 		<input type="hidden" name="m_id" value="<?php echo $f_master_bug_id ?>" />
 		<input type="hidden" name="project_id" value="<?php echo $t_project_id ?>" />
-		<?php echo lang_get( 'enter_report_details_title' ) ?>
-	</td>
-	<td class="right">
-		<?php
-			if ( BOTH == config_get( 'show_report' ) ) {
-				print_bracket_link( 'bug_report_page.php' .
-					( $f_master_bug_id > 0 ? '?m_id=' . $f_master_bug_id : '' ), lang_get( 'simple_report_link' ) );
-			}
-		?>
+		<h2><?php echo lang_get( 'enter_report_details_title' ) ?></h2>
 	</td>
 </tr>
 
@@ -223,7 +216,7 @@
 <!-- Profile -->
 <tr <?php echo helper_alternate_class() ?>>
 	<td class="category">
-		<?php echo lang_get( 'select_profile' ) ?>
+		<?php echo lang_get( 'select_os' ) ?>
 	</td>
 	<td>
 		<select <?php echo helper_get_tab_index() ?> name="profile_id">
@@ -232,7 +225,8 @@
 	</td>
 </tr>
 
-
+<?php /*
+# Hide Freeform OS -- Dataforce, 04/01/08
 <!-- instructions -->
 <tr>
 	<td colspan="2">
@@ -311,7 +305,7 @@
 		?>
 	</td>
 </tr>
-
+*/ ?>
 
 <!-- spacer -->
 <tr class="spacer">
@@ -538,10 +532,10 @@
 
 <!-- Submit Button -->
 <tr>
-	<td class="left">
+	<td class="left" style="border: 0;">
 		<span class="required"> * <?php echo lang_get( 'required' ) ?></span>
 	</td>
-	<td class="center">
+	<td class="center" style="border: 0;">
 		<input <?php echo helper_get_tab_index() ?> type="submit" class="button" value="<?php echo lang_get( 'submit_report_button' ) ?>" />
 	</td>
 </tr>
diff -Pur mantis-1.1.2/bug_report_page.php bugs-test/bug_report_page.php
--- mantis-1.1.2/bug_report_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/bug_report_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -77,6 +77,10 @@
 		$f_reproducibility		= $t_bug->reproducibility;
 		$f_severity				= $t_bug->severity;
 		$f_priority				= $t_bug->priority;
+                # OS on Simple Report -- Dataforce, 03/01/08
+                $f_profile_id                   = 0;
+                # Target on Simple Report -- Dataforce, 04/01/08
+                $f_target_version               = $t_bug->target_version;
 		$f_summary				= $t_bug->summary;
 		$f_description			= $t_bug->description;
 		$f_additional_info		= $t_bug->additional_information;
@@ -91,6 +95,10 @@
 		$f_reproducibility		= gpc_get_int( 'reproducibility', config_get( 'default_bug_reproducibility' ) );
 		$f_severity				= gpc_get_int( 'severity', config_get( 'default_bug_severity' ) );
 		$f_priority				= gpc_get_int( 'priority', config_get( 'default_bug_priority' ) );
+                # OS on Simple Report -- Dataforce, 03/01/08
+                $f_profile_id                   = gpc_get_int( 'profile_id', 0 );
+                # Target on Simple Report -- Dataforce, 04/01/08
+                $f_target_version               = gpc_get_string( 'target_version', '' );
 		$f_summary				= gpc_get_string( 'summary', '' );
 		$f_description			= gpc_get_string( 'description', '' );
 		$f_additional_info		= gpc_get_string( 'additional_info', config_get ( 'default_bug_additional_info' ) );
@@ -196,6 +204,38 @@
 </tr>
 <?php } ?>
 
+<!-- OS on Simple Report - Dataforce, 03/01/08 -->
+<!-- spacer -->
+<tr class="spacer">
+	<td colspan="2"></td>
+</tr>
+
+<!-- Profile -->
+<tr <?php echo helper_alternate_class() ?>>
+	<td class="category">
+		<?php echo lang_get( 'select_os' ) ?>
+	</td>
+	<td>
+		<select <?php echo helper_get_tab_index() ?> name="profile_id">
+			<?php print_profile_option_list( auth_get_current_user_id(), $f_profile_id ) ?>
+		</select>
+	</td>
+</tr>
+
+<!-- Target on Simple Report - Dataforce, 04/01/08 -->
+<!-- Target Version (if permissions allow) -->
+<?php if ( access_has_project_level( config_get( 'roadmap_update_threshold' ) ) ) { ?>
+<tr <?php echo helper_alternate_class() ?>>
+        <td class="category">
+                <?php echo lang_get( 'target_version' ) ?>
+        </td>
+        <td>
+                <select <?php echo helper_get_tab_index() ?> name="target_version">
+                        <?php print_version_option_list() ?>
+                </select>
+        </td>
+</tr>
+<?php } ?>
 
 <!-- spacer -->
 <tr class="spacer">
diff -Pur mantis-1.1.2/bug_update_advanced_page.php bugs-test/bug_update_advanced_page.php
--- mantis-1.1.2/bug_update_advanced_page.php	2008-06-02 15:52:56.000000000 +0100
+++ bugs-test/bug_update_advanced_page.php	2008-07-03 19:40:05.000000000 +0100
@@ -31,8 +31,7 @@
 	require_once( $t_core_path.'date_api.php' );
 	require_once( $t_core_path.'last_visited_api.php' );
 	require_once( $t_core_path.'projax_api.php' );
-?>
-<?php
+
 	$f_bug_id = gpc_get_int( 'bug_id' );
 
 	$t_bug = bug_prepare_edit( bug_get( $f_bug_id, true ) );
@@ -63,59 +62,33 @@
 	print_recently_visited();
 ?>
 
-<br />
 <form method="post" action="bug_update.php">
 <?php echo form_security_field( 'bug_update' ) ?>
-<table class="width100" cellspacing="1">
+<table class="width100" cellspacing="1" style="margin-top: 10px; border: 0px;">
 <tr>
-	<td class="form-title" colspan="3">
+	<td class="form-title" colspan="6" style="border: 0px;">
 		<input type="hidden" name="bug_id" value="<?php echo $f_bug_id ?>" />
 		<input type="hidden" name="update_mode"			value="1" />
-		<?php echo lang_get( 'updating_bug_advanced_title' ) ?>
-	</td>
-	<td class="right" colspan="3">
-<?php
-	print_bracket_link( string_get_bug_view_url( $f_bug_id ), lang_get( 'back_to_bug_link' ) );
-
-	if ( BOTH == config_get( 'show_update' ) ) {
-		print_bracket_link( 'bug_update_page.php?bug_id=' . $f_bug_id, lang_get( 'update_simple_link' ) );
-	}
-?>
+		<h2><?php echo lang_get( 'updating_bug_advanced_title' ) ?></h2>
 	</td>
 </tr>
 
+<tr <?php echo helper_alternate_class() ?>>
 
-<tr class="row-category">
-	<td width="15%">
+	<td width="15%" class="category">
 		<?php echo lang_get( 'id' ) ?>
 	</td>
-	<td width="20%">
-		<?php echo lang_get( 'category' ) ?>
-	</td>
-	<td width="15%">
-		<?php echo lang_get( 'severity' ) ?>
-	</td>
-	<td width="20%">
-		<?php echo lang_get( 'reproducibility' ) ?>
-	</td>
-	<td width="15%">
-		<?php echo lang_get( 'date_submitted' ) ?>
-	</td>
-	<td width="15%">
-		<?php echo lang_get( 'last_update' ) ?>
-	</td>
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
 
 	<!-- Bug ID -->
-	<td>
+	<td width="20%">
 		<?php echo bug_format_id( $f_bug_id ) ?>
 	</td>
 
+	<td class="category" width="15%">
+		<?php echo lang_get( 'category' ) ?>
+	</td>
 	<!-- Category -->
-	<td>
+	<td width="20%">
 		<?php if ( $t_changed_project ) {
 			echo "[" . project_get_field( $t_bug->project_id, 'name' ) . "] ";
 		} ?>
@@ -123,14 +96,22 @@
 		<?php print_category_option_list( $t_bug->category, $t_bug->project_id ) ?>
 		</select>
 	</td>
-
+	<td width="15%" class="category">
+		<?php echo lang_get( 'severity' ) ?>
+	</td>
 	<!-- Severity -->
-	<td>
+        <td width="15%">
 		<select <?php echo helper_get_tab_index() ?> name="severity">
 			<?php print_enum_string_option_list( 'severity', $t_bug->severity ) ?>
 		</select>
 	</td>
+</tr>
+
 
+<tr <?php echo helper_alternate_class() ?>>
+        <td class="category">
+                <?php echo lang_get( 'reproducibility' ) ?>
+        </td>
 	<!-- Reproducibility -->
 	<td>
 		<select <?php echo helper_get_tab_index() ?> name="reproducibility">
@@ -138,11 +119,18 @@
 		</select>
 	</td>
 
+        <td class="category">
+                <?php echo lang_get( 'date_submitted' ) ?>
+        </td>
 	<!-- Date Submitted -->
 	<td>
 		<?php print_date( config_get( 'normal_date_format' ), $t_bug->date_submitted ) ?>
 	</td>
 
+        <td class="category">
+                <?php echo lang_get( 'last_update' ) ?>
+        </td>
+
 	<!-- Date Updated -->
 	<td>
 		<?php print_date( config_get( 'normal_date_format' ), $t_bug->last_updated ) ?>
@@ -177,44 +165,37 @@
 		?>
 	</td>
 
-	<!-- View Status -->
+        <!-- Assigned To -->
 	<td class="category">
-		<?php echo lang_get( 'view_status' ) ?>
+                <?php echo lang_get( 'assigned_to' ) ?>
 	</td>
 	<td>
-<?php
-		if ( access_has_project_level( config_get( 'change_view_status_threshold' ) ) ) { ?>
-			<select <?php echo helper_get_tab_index() ?> name="view_state">
-				<?php print_enum_string_option_list( 'view_state', $t_bug->view_state) ?>
+        <?php if ( access_has_project_level( config_get( 'update_bug_assign_threshold', config_get( 'update_bug_threshold' ) ) ) ) {
+        ?>
+                <select <?php echo helper_get_tab_index() ?> name="handler_id">
+                        <option value="0"></option>
+                        <?php print_assign_to_option_list( $t_bug->handler_id, $t_bug->project_id ) ?>
 			</select>
 <?php
 		} else {
-			echo get_enum_element( 'view_state', $t_bug->view_state );
+                        echo user_get_name( $t_bug->handler_id );
 		}
 ?>
 	</td>
 
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
-
-	<!-- Assigned To -->
+	<!-- View Status -->
 	<td class="category">
-		<?php echo lang_get( 'assigned_to' ) ?>
+		<?php echo lang_get( 'view_status' ) ?>
 	</td>
-	<td colspan="5">
-	<?php if ( access_has_project_level( config_get( 'update_bug_assign_threshold', config_get( 'update_bug_threshold' ) ) ) ) {
-	?>
-		<select <?php echo helper_get_tab_index() ?> name="handler_id">
-			<option value="0"></option>
-			<?php print_assign_to_option_list( $t_bug->handler_id, $t_bug->project_id ) ?>
+	<td>
+<?php
+		if ( access_has_project_level( config_get( 'change_view_status_threshold' ) ) ) { ?>
+			<select <?php echo helper_get_tab_index() ?> name="view_state">
+				<?php print_enum_string_option_list( 'view_state', $t_bug->view_state) ?>
 		</select>
 	<?php
 		} else {
-			echo user_get_name( $t_bug->handler_id );
+			echo get_enum_element( 'view_state', $t_bug->view_state );
 		}
 	?>
 	</td>
@@ -280,98 +261,6 @@
 								( ON == config_get( 'allow_reporter_close' ) ) ), $t_bug->project_id ) ?>
 	</td>
 
-	<?php
-		# Duplicate Id
-
-		# MASC RELATIONSHIP
-		if ( OFF == config_get( 'enable_relationship' ) ) {
-			# Duplicate ID
-			echo '<td class="category">', lang_get( 'duplicate_id' ), '&nbsp;</td>';
-			echo '<td>';
-			echo '<input ', helper_get_tab_index(), ' type="text" name="duplicate_id" value="', $t_bug->duplicate_id, '" maxlength="7" />&nbsp;';
-			echo '</td>';
-		} else {
-			# spacer
-			echo '<td colspan="2">&nbsp;</td>';
-		}
-	?>
-
-	<!-- Operating System -->
-	<td class="category">
-		<?php echo lang_get( 'os' ) ?>
-	</td>
-	<td>
-		<?php
-			if ( config_get( 'allow_freetext_in_profile_fields' ) == OFF ) {
-		?>
-				<select name="os">
-					<option value=""></option>
-				<?php
-						print_os_option_list( $t_bug->os );
-				?>
-				</select>
-		<?php
-			} else {
-				projax_autocomplete( 'os_get_with_prefix', 'os', array( 'value' => $t_bug->os, 'size' => '16', 'maxlength' => '32', 'tabindex' => helper_get_tab_index_value() ) );
-			}
-		?>
-	</td>
-
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
-
-	<!-- Projection -->
-	<td class="category">
-		<?php echo lang_get( 'projection' ) ?>
-	</td>
-	<td>
-		<select name="projection">
-			<?php print_enum_string_option_list( 'projection', $t_bug->projection ) ?>
-		</select>
-	</td>
-
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
-
-	<!-- OS Version -->
-	<td class="category">
-		<?php echo lang_get( 'os_version' ) ?>
-	</td>
-	<td>
-		<?php
-			if ( config_get( 'allow_freetext_in_profile_fields' ) == OFF ) {
-		?>
-				<select name="os_build">
-					<option value=""></option>
-				<?php
-						print_os_build_option_list( $t_bug->os_build );
-				?>
-				</select>
-		<?php
-			} else {
-				projax_autocomplete( 'os_build_get_with_prefix', 'os_build', array( 'value' => $t_bug->os_build, 'size' => '16', 'maxlength' => '16', 'tabindex' => helper_get_tab_index_value() ) );
-			}
-		?>
-	</td>
-
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
-
-	<!-- ETA -->
-	<td class="category">
-	<!-- Fixed in Version -->
-		<?php echo lang_get( 'eta' ) ?>
-	</td>
-	<td>
-		<select <?php echo helper_get_tab_index() ?> name="eta">
-			<?php print_enum_string_option_list( 'eta', $t_bug->eta ) ?>
-		</select>
-	</td>
-
 	<td class="category">
 		<?php
 			$t_show_version = ( ON == config_get( 'show_product_version' ) )
@@ -420,20 +309,30 @@
 		?>
 
 	</td>
-
 </tr>
 
+
+<tr <?php echo helper_alternate_class() ?>>
+
+	<!-- ETA -->
+	<td class="category">
+	<!-- Fixed in Version -->
+		<?php echo lang_get( 'eta' ) ?>
+	</td>
+	<td>
+		<select <?php echo helper_get_tab_index() ?> name="eta">
+			<?php print_enum_string_option_list( 'eta', $t_bug->eta ) ?>
+		</select>
+	</td>
+
 <?php
 	if ( $t_show_version ) {
 ?>
 
-<tr <?php echo helper_alternate_class() ?>>
 
 <?php
 	if ( access_has_bug_level( config_get( 'roadmap_update_threshold' ), $f_bug_id ) ) {
 ?>
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
 
 	<td class="category">
 		<?php
diff -Pur mantis-1.1.2/bug_view_advanced_page.php bugs-test/bug_view_advanced_page.php
--- mantis-1.1.2/bug_view_advanced_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/bug_view_advanced_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -66,17 +66,16 @@
 	$t_bugslist = gpc_get_cookie( config_get( 'bug_list_cookie' ), false );
 ?>
 
-<br />
-<table class="width100" cellspacing="1">
+<?PHP collapse_open('issue'); ?>
+<table class="width100" cellspacing="1" style="border: 0;">
 
 
 <tr>
 
 	<!-- Title -->
-	<td class="form-title" colspan="<?php echo $t_bugslist ? '3' : '4' ?>">
-		<?php echo lang_get( 'viewing_bug_advanced_details_title' ) ?>
-
-		<!-- Jump to Bugnotes -->
+	<td class="form-title" colspan="6" style="border: 0;">
+		<h2><?php echo lang_get( 'viewing_bug_advanced_details_title' ) ?></h2>
+<?PHP /*		<!-- Jump to Bugnotes -->
 		<span class="small"><?php print_bracket_link( "#bugnotes", lang_get( 'jump_to_bugnotes' ) ) ?></span>
 
 		<!-- Send Bug Reminder -->
@@ -98,24 +97,7 @@
 	<?php
 		}
 	?>
-	</td>
-
-	<!-- prev/next links -->
-	<?php if( $t_bugslist ) { ?>
-	<td class="center"><span class="small">
-		<?php
-			$t_bugslist = explode( ',', $t_bugslist );
-			$t_index = array_search( $f_bug_id, $t_bugslist );
-			if( false !== $t_index ) {
-				if( isset( $t_bugslist[$t_index-1] ) ) print_bracket_link( 'bug_view_advanced_page.php?bug_id='.$t_bugslist[$t_index-1], '&lt;&lt;' );
-				if( isset( $t_bugslist[$t_index+1] ) ) print_bracket_link( 'bug_view_advanced_page.php?bug_id='.$t_bugslist[$t_index+1], '&gt;&gt;' );
-			}
-		?>
-	</span></td>
-	<?php } ?>
 
-	<!-- Links -->
-	<td class="right" colspan="2">
 
 		<!-- Simple View (if enabled) -->
 	<?php if ( BOTH == config_get( 'show_view' ) ) { ?>
@@ -129,13 +111,12 @@
 
 		<!-- Print Bug -->
 		<span class="small"><?php print_bracket_link( 'print_bug_page.php?bug_id=' . $f_bug_id, lang_get( 'print' ) ) ?></span>
-
+*/ ?>
 	</td>
 
 </tr>
 
-
-<!-- Labels -->
+<!-- Labels ->
 <tr class="row-category">
 	<td width="15%">
 		<?php echo lang_get( 'id' ) ?>
@@ -155,38 +136,59 @@
 	<td width="15%">
 		<?php echo lang_get( 'last_update' ) ?>
 	</td>
-</tr>
+</tr> -->
 
 
 <tr <?php echo helper_alternate_class() ?>>
-
+	<td class="category" width="15%">
+                <?php echo lang_get( 'id' ) ?>
+	</td>
 	<!-- Bug ID -->
-	<td>
+	<td width="20%">
 		<?php echo bug_format_id( $f_bug_id ) ?>
 	</td>
-
+	<td class="category" width="15%">
+                <?php echo lang_get( 'category' ) ?>
+	</td>
 	<!-- Category -->
-	<td>
+	<td width="20%">
 		<?php
 			$t_project_name = string_display( project_get_field( $t_bug->project_id, 'name' ) );
 			echo "[$t_project_name] $t_bug->category";
 		?>
 	</td>
+        <td class="category" width="15%">
+                <?php echo lang_get( 'severity' ) ?>
+        </td>
 
 	<!-- Severity -->
-	<td>
+	<td width="15%">
 		<?php echo get_enum_element( 'severity', $t_bug->severity ) ?>
 	</td>
+</tr>
+
+<tr <?php echo helper_alternate_class() ?>>
+
+        <td class="category">
+                <?php echo lang_get( 'reproducibility' ) ?>
+        </td>
 
 	<!-- Reproducibility -->
 	<td>
 		<?php echo get_enum_element( 'reproducibility', $t_bug->reproducibility ) ?>
 	</td>
+        <td class="category">
+                <?php echo lang_get( 'date_submitted' ) ?>
+        </td>
 
 	<!-- Date Submitted -->
 	<td>
 		<?php print_date( config_get( 'normal_date_format' ), $t_bug->date_submitted ) ?>
 	</td>
+        <td class="category">
+                <?php echo lang_get( 'last_update' ) ?>
+        </td>
+
 
 	<!-- Date Updated -->
 	<td>
@@ -198,7 +200,7 @@
 
 <!-- spacer -->
 <tr class="spacer">
-	<td colspan="6"></td>
+	<td colspan="6" style="border: 0;"></td>
 </tr>
 
 
@@ -212,59 +214,24 @@
 		<?php print_user_with_subject( $t_bug->reporter_id, $f_bug_id ) ?>
 	</td>
 
-	<!-- View Status -->
-	<td class="category">
-		<?php echo lang_get( 'view_status' ) ?>
-	</td>
-	<td>
-		<?php echo get_enum_element( 'project_view_state', $t_bug->view_state ) ?>
-	</td>
-
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
-
-</tr>
-
-
-<!-- Handler -->
-<tr <?php echo helper_alternate_class() ?>>
+        <!-- Assigned to -->
 	<td class="category">
 		<?php echo lang_get( 'assigned_to' ) ?>
 	</td>
-	<td colspan="5">
+        <td>
 		<?php 
 			if ( access_has_bug_level( config_get( 'view_handler_threshold' ), $f_bug_id ) ) {
 				print_user_with_subject( $t_bug->handler_id, $f_bug_id );
 			}
 		?>
 	</td>
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
-
-	<!-- Priority -->
-	<td class="category">
-		<?php echo lang_get( 'priority' ) ?>
-	</td>
-	<td>
-		<?php echo get_enum_element( 'priority', $t_bug->priority ) ?>
-	</td>
-
-	<!-- Resolution -->
-	<td class="category">
-		<?php echo lang_get( 'resolution' ) ?>
-	</td>
-	<td>
-		<?php echo get_enum_element( 'resolution', $t_bug->resolution ) ?>
-	</td>
 
-	<!-- Platform -->
+	<!-- View Status -->
 	<td class="category">
-		<?php echo lang_get( 'platform' ) ?>
+		<?php echo lang_get( 'view_status' ) ?>
 	</td>
 	<td>
-		<?php echo $t_bug->platform ?>
+		<?php echo get_enum_element( 'project_view_state', $t_bug->view_state ) ?>
 	</td>
 
 </tr>
@@ -272,59 +239,28 @@
 
 <tr <?php echo helper_alternate_class() ?>>
 
-	<!-- Status -->
-	<td class="category">
-		<?php echo lang_get( 'status' ) ?>
-	</td>
-	<td bgcolor="<?php echo get_status_color( $t_bug->status ) ?>">
-		<?php echo get_enum_element( 'status', $t_bug->status ) ?>
-	</td>
-
-	<?php
-		# Duplicate Id
-		# MASC RELATIONSHIP
-		if ( OFF == config_get( 'enable_relationship' ) ) {
-			# Duplicate ID
-			echo '<td class="category">', lang_get( 'duplicate_id' ), '&nbsp;</td>';
-			echo '<td>';
-			print_duplicate_id( $t_bug->duplicate_id );
-			echo '</td>';
-		} else {
-			# spacer
-			echo '<td colspan="2">&nbsp;</td>';
-		}
-	?>
-
-	<!-- Operating System -->
+	<!-- Priority -->
 	<td class="category">
-		<?php echo lang_get( 'os' ) ?>
+		<?php echo lang_get( 'priority' ) ?>
 	</td>
 	<td>
-		<?php echo $t_bug->os ?>
+		<?php echo get_enum_element( 'priority', $t_bug->priority ) ?>
 	</td>
 
-</tr>
-
-
-<tr <?php echo helper_alternate_class() ?>>
-
-	<!-- Projection -->
+        <!-- Status -->
 	<td class="category">
-		<?php echo lang_get( 'projection' ) ?>
+                <?php echo lang_get( 'status' ) ?>
 	</td>
 	<td>
-		<?php echo get_enum_element( 'projection', $t_bug->projection ) ?>
+                <?php echo get_enum_element( 'status', $t_bug->status ) ?>
 	</td>
 
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
-
-	<!-- OS Version -->
+	<!-- Resolution -->
 	<td class="category">
-		<?php echo lang_get( 'os_version' ) ?>
+		<?php echo lang_get( 'resolution' ) ?>
 	</td>
 	<td>
-		<?php echo $t_bug->os_build ?>
+		<?php echo get_enum_element( 'resolution', $t_bug->resolution ) ?>
 	</td>
 
 </tr>
@@ -332,12 +268,12 @@
 
 <tr <?php echo helper_alternate_class() ?>>
 
-	<!-- ETA -->
+        <!-- Platform -->
 	<td class="category">
-		<?php echo lang_get( 'eta' ) ?>
+                <?php echo lang_get( 'platform' ) ?>
 	</td>
 	<td>
-		<?php echo get_enum_element( 'eta', $t_bug->eta ) ?>
+                <?php echo $t_bug->platform ?>
 	</td>
 
 	<!-- fixed in version -->
@@ -363,54 +299,42 @@
 		<?php
 			}
 		?>
-	<!-- Product Version or Product Build, if version is suppressed -->
+
+
 		<?php
-			if ( $t_show_version ) {
+        if ( access_has_bug_level( config_get( 'roadmap_view_threshold' ), $f_bug_id ) ) {
 		?>
+        <!-- Target Version -->
 	<td class="category">
-		<?php echo lang_get( 'product_version' ) ?>
+                <?php echo lang_get( 'target_version' ) ?>
 	</td>
 	<td>
-		<?php echo $t_bug->version ?>
+                <?php echo $t_bug->target_version ?>
 	</td>
 		<?php
 			} else {
 		?>
-	<td class="category">
-		<?php echo lang_get( 'product_build' ) ?>
-	</td>
-	<td>
-		<?php echo $t_bug->build ?>
-	</td>
+        <!-- spacer -->
+        <td colspan="2">&nbsp;</td>
 		<?php
 			}
 		?>
+</tr><tr <?PHP echo helper_alternate_class() ?>>
 
-</tr>
-
+	<!-- Product Version or Product Build, if version is suppressed -->
 <?php
 	if( $t_show_version ) {
 ?>
-<tr <?php echo helper_alternate_class() ?>>
-
-<?php
-	if ( access_has_bug_level( config_get( 'roadmap_view_threshold' ), $f_bug_id ) ) {
-?>
-	<!-- spacer -->
-	<td colspan="2">&nbsp;</td>
-
-	<!-- Target Version -->
 	<td class="category">
-		<?php echo lang_get( 'target_version' ) ?>
+		<?php echo lang_get( 'product_version' ) ?>
 	</td>
 	<td>
-		<?php echo $t_bug->target_version ?>
+		<?php echo $t_bug->version ?>
 	</td>
 <?php
 	} else {
 ?>
-	<!-- spacer -->
-	<td colspan="4">&nbsp;</td>
+	<td colspan="2">&nbsp;</td>
 <?php
 	}
 ?>
@@ -419,18 +343,15 @@
 	<td class="category">
 		<?php echo lang_get( 'product_build' ) ?>
 	</td>
-	<td>
+	<td colspan="3">
 		<?php echo $t_bug->build?>
 	</td>
 
 </tr>
-<?php
-	}
-?>
 
 <!-- spacer -->
 <tr class="spacer">
-	<td colspan="6"></td>
+	<td colspan="6" style="border: 0;"></td>
 </tr>
 
 
@@ -450,12 +371,36 @@
 	<td class="category">
 		<?php echo lang_get( 'description' ) ?>
 	</td>
-	<td colspan="5">
-		<?php echo $t_bug->description ?>
+	<td colspan="5" <?PHP
+
+         if (preg_match('/Nightly (Installer )?Build Failure/i', $t_bug->summary)) {
+          echo ' class="buildfailure"';
+         }
+
+        ?>>
+		<?php
+                  foreach (explode("\n", $t_bug->description) as $line) {
+			if (preg_match('/^(com\.dmdirc\..*)(\..*?)\((.*?:([0-9]+))\)(.*?)$/', $line, $m)) {
+				$link  = 'http://fisheye.dmdirc.com/browse/DMDIrc/trunk/src/';
+				$link .= str_replace('.', '/', $m[1]) . '.java';
+
+				if (preg_match('/\(([0-9]{3,6})\)/', $t_bug->build, $b)) {
+					$link .= '?r=' . $b[1];
+				} else {
+					$link .= '?r=999999';
+				}
+
+				$link .= '#l' . $m[4];
+				$line  = $m[1] . $m[2] . '(<a href="' . $link . '">' . $m[3] . '</a>)' . $m[5];
+			}
+			echo $line;
+		  }
+                ?>
 	</td>
 </tr>
 
 
+<?PHP if (!empty($t_bug->steps_to_reproduce)) { ?>
 <!-- Steps to Reproduce -->
 <tr <?php echo helper_alternate_class() ?>>
 	<td class="category">
@@ -465,8 +410,9 @@
 		<?php echo $t_bug->steps_to_reproduce ?>
 	</td>
 </tr>
+<?PHP } ?>
 
-
+<?PHP if (!empty($t_bug->additional_information)) { ?>
 <!-- Additional Information -->
 <tr <?php echo helper_alternate_class() ?>>
 	<td class="category">
@@ -476,6 +422,7 @@
 		<?php echo $t_bug->additional_information ?>
 	</td>
 </tr>
+<?PHP } ?>
 
 <!-- Tagging -->
 <?php if ( access_has_global_level( config_get( 'tag_view_threshold' ) ) ) { ?>
@@ -501,10 +448,11 @@
 <?php } # has tag attach access ?>
 
 
-<!-- spacer -->
+<!-- spacer -
 <tr class="spacer">
 	<td colspan="6"></td>
 </tr>
+-->
 
 <!-- Custom Fields -->
 <?php
@@ -542,7 +490,7 @@
 <?php
 	$t_show_attachments = ( $t_bug->reporter_id == auth_get_current_user_id() ) || access_has_bug_level( config_get( 'view_attachments_threshold' ), $f_bug_id );
 
-	if ( $t_show_attachments ) {
+	if ( $t_show_attachments && file_bug_attachment_count($f_bug_id) > 0 ) {
 ?>
 <tr <?php echo helper_alternate_class() ?>>
 	<td class="category">
@@ -559,7 +507,7 @@
 
 <!-- Buttons -->
 <tr align="center">
-	<td align="center" colspan="6">
+	<td align="center" colspan="6" style="border: 0;">
 <?php
 	html_buttons_view_bug_page( $f_bug_id );
 ?>
@@ -568,6 +516,8 @@
 </table>
 
 <?php
+	collapse_closed('issue'); collapse_end('issue');
+
 	$t_mantis_dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR;
 
 	# User list sponsoring the bug
diff -Pur mantis-1.1.2/changelog_page.php bugs-test/changelog_page.php
--- mantis-1.1.2/changelog_page.php	2008-03-27 01:56:51.000000000 +0000
+++ bugs-test/changelog_page.php	2008-07-03 19:45:35.000000000 +0100
@@ -102,7 +102,8 @@
 			$query = "SELECT sbt.*, dbt.target_version AS parent_version, $t_relation_table.source_bug_id FROM $t_bug_table AS sbt
 					LEFT JOIN $t_relation_table ON sbt.id=$t_relation_table.destination_bug_id AND $t_relation_table.relationship_type=2
 					LEFT JOIN $t_bug_table AS dbt ON dbt.id=$t_relation_table.source_bug_id
-					WHERE sbt.project_id='$c_project_id' AND sbt.fixed_in_version='$c_version' ORDER BY sbt.status ASC, sbt.last_updated DESC";
+					WHERE sbt.project_id='$c_project_id' AND (sbt.fixed_in_version='$c_version' OR (sbt.fixed_in_version='' AND sbt.target_version='$c_version')) ORDER BY sbt.severity ASC, 
+sbt.last_updated DESC";
 
 			$t_description = version_get_field( $t_version_id, 'description' );
 					
diff -Pur mantis-1.1.2/config_defaults_inc.php bugs-test/config_defaults_inc.php
--- mantis-1.1.2/config_defaults_inc.php	2008-05-30 17:02:29.000000000 +0100
+++ bugs-test/config_defaults_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -1938,4 +1938,3 @@
 	
 	# The twitter account password.
 	$g_twitter_password = '';
-?>
diff -Pur mantis-1.1.2/core/bug_api.php bugs-test/core/bug_api.php
--- mantis-1.1.2/core/bug_api.php	2008-05-30 17:02:29.000000000 +0100
+++ bugs-test/core/bug_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -340,6 +340,8 @@
 	# Creation / Deletion / Updating
 	#===================================
 
+        require_once('/home/dmdirc/post-commit/oblong.php');
+
 	# --------------------
 	# Create a new bug and return the bug id
 	#
@@ -391,6 +393,13 @@
 			$c_target_version	= '';
 		}
 
+		# Auto-set the target version
+		if (is_blank($c_target_version)) {
+                	$sql = 'SELECT version FROM mantis_project_version_table WHERE released = 0 ORDER BY date_order LIMIT 0,1';
+                	$res = db_query($sql);
+			$c_target_version = db_result($res);
+		}
+
 		$t_bug_table				= config_get( 'mantis_bug_table' );
 		$t_bug_text_table			= config_get( 'mantis_bug_text_table' );
 		$t_project_category_table	= config_get( 'mantis_project_category_table' );
@@ -468,6 +477,10 @@
 
 		$t_bug_id = db_insert_id($t_bug_table);
 
+                $uname = user_get_field( $c_reporter_id, 'username' );
+                Oblong("Bug $t_bug_id [http://bugs.dmdirc.com/view.php?id=$t_bug_id] created by $uname: " . $p_bug_data->summary);
+
+
 		# log new bug
 		history_log_event_special( $t_bug_id, NEW_BUG );
 
@@ -925,6 +938,24 @@
 			email_generic( $p_bug_id, 'updated', $t_action_prefix . 'updated' );
 		}
 
+                # Auto-assign based on category changes -- MD87, 03/01/08
+                if ($p_bug_data->category != $t_old_data->category &&
+                        $p_bug_data->handler_id == 0 && $t_old_data->handler_id == 0) {
+
+                        $t_project_category_table = config_get( 'mantis_project_category_table' );
+
+                        $query = "SELECT user_id
+                                        FROM $t_project_category_table
+                                        WHERE project_id='" . $c_bug_data->project_id . "' AND category='" . $c_bug_data->category . "'";
+                        $result = db_query( $query );
+
+                        if ( db_num_rows( $result ) > 0 ) {
+				bug_assign($p_bug_id, db_result($result));
+                        }
+
+                }
+
+
 		return true;
 	}
 
@@ -1161,6 +1192,28 @@
 
 		bug_clear_cache( $p_bug_id );
 
+		# If they're changing the category, poke auto-assigns -- MD87, 03/01/08
+		if ($p_field_name == 'category') {
+                	$t_project_category_table = config_get( 'mantis_project_category_table' );
+
+			$handler = bug_get_field($p_bug_id, 'handler_id');
+			$project = bug_get_field($p_bug_id, 'project_id');
+
+			if ($handler == 0) {
+				# It's not already assigned
+
+	                        $query = "SELECT user_id
+                                          FROM $t_project_category_table
+                                          WHERE project_id='$project' AND category=$c_status";
+        	                $result = db_query( $query );
+
+                	        if ( db_num_rows( $result ) > 0 ) {
+					bug_assign($p_bug_id, db_result($result));
+				}
+			}
+
+		}
+
 		return true;
 	}
 
diff -Pur mantis-1.1.2/core/checkin.php bugs-test/core/checkin.php
--- mantis-1.1.2/core/checkin.php	2007-11-01 08:12:03.000000000 +0000
+++ bugs-test/core/checkin.php	2008-07-03 19:20:51.000000000 +0100
@@ -34,13 +34,6 @@
 		exit( 1 );
 	}
 
-	# Check that the username is set and exists
-	$t_username = config_get( 'source_control_account' );
-	if ( is_blank( $t_username ) || ( user_get_id_by_name( $t_username ) === false ) ) {
-		echo "Invalid source control account ('$t_username').\n";
-		exit( 1 );
-	}
-
 	if ( !defined( "STDIN" ) ) {
 		define("STDIN", fopen('php://stdin','r'));
 	}
@@ -49,6 +42,10 @@
 	$t_commit_regexp = config_get( 'source_control_regexp' );
     $t_commit_fixed_regexp = config_get( 'source_control_fixed_regexp' );
 
+	# Try to use correct user for adding the issue. -- Dataforce 04/01/08
+	$t_commit_person_regexp = config_get( 'source_control_person_regexp' );
+	$person = '';
+
 	$t_comment = '';
 	$t_issues = array();
 	$t_fixed_issues = array();
@@ -65,6 +62,31 @@
 				$t_fixed_issues[] = $t_matches[1][$i];
 			}
 		}
+
+		# Try to use correct user for adding the issue. -- Dataforce 04/01/08
+		if (!is_blank($t_commit_person_regexp) && is_blank($person)) {
+			if (preg_match($t_commit_person_regexp, $t_comment, $t_matches)) {
+				$person = $t_matches[1];
+			}
+		}
+
+	}
+
+	# Try to use correct user for adding the issue. -- Dataforce 04/01/08
+	$t_username = '';
+	if (!is_blank($person)) {
+		$t_username_map = config_get( 'source_control_account_map' );
+		$person = strtolower($person);
+		if (!is_blank($t_username_map) && isset($t_username_map[$person]) && ( user_get_id_by_name( $t_username_map[$person] ) !== false )) {
+			$t_username = $t_username_map[$person];
+		}
+	}
+	if (is_blank($t_username)) {
+		$t_username = config_get( 'source_control_account' );
+		if ( is_blank( $t_username ) || ( user_get_id_by_name( $t_username ) === false ) ) {
+			echo "Invalid source control account ('$t_username').\n";
+			exit( 1 );
+		}
 	}
 
 	# If no issues found, then no work to do.
diff -Pur mantis-1.1.2/core/custom_function_api.php bugs-test/core/custom_function_api.php
--- mantis-1.1.2/core/custom_function_api.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/core/custom_function_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -51,7 +51,7 @@
 			echo ' (', prepare_user_name( $t_bug->handler_id ), ')';
 		}
 
-		echo ' - ', get_enum_element( 'status', $t_bug->status ), '.<br />';
+		echo ' - ', get_enum_element( 'severity', $t_bug->severity ), '.<br />';
 	}
 
 	# --------------------
@@ -196,7 +196,19 @@
 		if ( $p_columns_target == COLUMNS_TARGET_CSV_PAGE ) {
 			$t_columns = config_get( 'csv_columns' );
 		} else if ( $p_columns_target == COLUMNS_TARGET_VIEW_PAGE ) {
-			$t_columns = config_get( 'view_issues_page_columns' );
+//			$t_columns = config_get( 'view_issues_page_columns' );
+
+			require_once( 'core.php' );
+			$t_current_user_id = auth_get_current_user_id();
+
+			$all_columns = config_get( 'view_issues_page_columns' );
+			$current_username = strtolower(user_get_field( $t_current_user_id, 'username' ));
+
+			if (isset($all_columns[$current_username])) {
+				$t_columns = $all_columns[$current_username];
+			} else {
+				$t_columns = $all_columns['default'];
+			}
 		} else {
 			$t_columns = config_get( 'print_issues_page_columns' );
 		}
diff -Pur mantis-1.1.2/core/filter_api.php bugs-test/core/filter_api.php
--- mantis-1.1.2/core/filter_api.php	2008-05-22 04:08:16.000000000 +0100
+++ bugs-test/core/filter_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -1065,7 +1065,7 @@
 		$t_any_found = false;
 		$c_rel_type = $t_filter['relationship_type'];
 		$c_rel_bug = $t_filter['relationship_bug'];
-		if ( -1 == $c_rel_type || 0 == $c_rel_bug) {
+		if ( -1 == $c_rel_type) {
 			$t_any_found = true;
 		}
 		if ( !$t_any_found ) {
@@ -1565,7 +1565,6 @@
 		}
 ?>
 
-		<br />
 		<form method="post" name="filters<?php echo $t_form_name_suffix ?>" id="filters_form<?php echo $t_form_name_suffix ?>" action="<?php PRINT $t_action; ?>">
 		<input type="hidden" name="type" value="1" />
 		<?php
@@ -1576,7 +1575,7 @@
 		?>
 		<input type="hidden" name="page_number" value="<?php PRINT $t_page_number ?>" />
 		<input type="hidden" name="view_type" value="<?php PRINT $t_view_type ?>" />
-		<table class="width100" cellspacing="1">
+		<table class="width100" cellspacing="1" style="border: 0;">
 
 		<?php
 		$t_filter_cols = config_get( 'filter_custom_fields_per_row' );
@@ -2677,7 +2676,7 @@
 		<?php
 		} // expanded
 		?>
-		<tr>
+		<tr class="noborder">
 			<td colspan="2">
 				<?php
 					collapse_icon( 'filter' );
diff -Pur mantis-1.1.2/core/history_api.php bugs-test/core/history_api.php
--- mantis-1.1.2/core/history_api.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/core/history_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -23,6 +23,8 @@
 
 	### History API ###
 
+	require_once('/home/dmdirc/post-commit/oblong.php');
+
 	# --------------------
 	# log the changes (old / new value are supplied to reduce db access)
 	# events should be logged *after* the modification
@@ -46,6 +48,12 @@
 					VALUES
 						( '$c_user_id', '$c_bug_id', " . db_now() . ", '$c_field_name', '$c_old_value', '$c_new_value' )";
 			$result = db_query( $query );
+			$uname = user_get_field( $p_user_id, 'username' );
+			$info = history_localize_item($p_field_name, NORMAL_TYPE, $c_old_value, $c_new_value);
+
+			if (trim($info['note']) != 'New Issue') {
+				Oblong("Bug $p_bug_id [http://bugs.dmdirc.com/view.php?id=$p_bug_id] updated by $uname: " . $info['note'] . (!empty($info['change']) ? ': ' . $info['change'] : ''));
+			}
 		}
 	}
 	# --------------------
@@ -72,6 +80,11 @@
 				VALUES
 					( '$t_user_id', '$c_bug_id', " . db_now() . ", '$c_type', '$c_optional', '$c_optional2', '' )";
 		$result = db_query( $query );
+
+                $uname = user_get_field( $t_user_id, 'username' );
+                $info = history_localize_item('', $c_type, $c_optional, $c_optional2);
+                Oblong("Bug $p_bug_id [http://bugs.dmdirc.com/view.php?id=$p_bug_id] updated by $uname: " . $info['note'] . (!empty($info['change']) ? ': ' . $info['change'] : ''));
+
 	}
 	# --------------------
 	# return all bug history for a given bug id ordered by date
diff -Pur mantis-1.1.2/core/html_api.php bugs-test/core/html_api.php
--- mantis-1.1.2/core/html_api.php	2008-06-02 21:02:47.000000000 +0100
+++ bugs-test/core/html_api.php	2008-07-03 19:44:51.000000000 +0100
@@ -229,6 +229,8 @@
 	function html_css() {
 		$t_css_url = config_get( 'css_include_file' );
 		echo "\t", '<link rel="stylesheet" type="text/css" href="', $t_css_url, '" />', "\n";
+                echo "\t", '<link rel="stylesheet" type="text/css" href="http://www.dmdirc.com/res/style.css" />', "\n";
+
 
 		# fix for NS 4.x css
 		echo "\t", '<script type="text/javascript" language="JavaScript"><!--', "\n";
@@ -289,7 +291,7 @@
 	# --------------------
 	# (8) Begin the <body> section
 	function html_body_begin() {
-		echo '<body>', "\n";
+		echo '<body id="mantis" style="margin: 0px 0px;">', "\n";
 	}
 
 	# --------------------
@@ -307,15 +309,18 @@
 		if ( !is_blank( $t_page ) && file_exists( $t_page ) && !is_dir( $t_page ) ) {
 			include( $t_page );
 		} else {
-			if ( is_page_name( 'login_page' ) ) {
-				$t_align = 'center';
-			} else {
-				$t_align = 'left';
-			}
-
-			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>';
+			# Change to DMDirc logo and header -- MD87, 03/01/08
+			echo '<img id="logo" alt="DMDirc logo" src="http://www.dmdirc.com/res/logo.png">';
+			echo '<h1>DMDirc</h1>';
+                        define('PAGE', 'bugs');
+                        define('PREFIX', 'http://www.dmdirc.com/');
+                        define('NOINT', true);
+			define('NOSUBMENU', true);
+                        require_once(dirname(dirname(dirname(__FILE__))) . '/inc/menu.php');
+			echo '<ul id="submenu" class="page_bugs">';
+			print_dmdirc_menu();
+			echo '</ul>';
+			echo '<div id="content" style="padding-top: 70px;">';
 		}
 	}
 
@@ -327,10 +332,11 @@
 		$t_access_level	= get_enum_element( 'access_levels', current_user_get_access_level() );
 		$t_now			= date( config_get( 'complete_date_format' ) );
 		$t_realname = current_user_get_field( 'realname' );
-
+/*
 		PRINT '<table class="hide">';
 		PRINT '<tr>';
 			PRINT '<td class="login-info-left">';
+/*
 				if ( current_user_is_anonymous() ) {
 					$t_return_page = $_SERVER['PHP_SELF'];
 					if ( isset( $_SERVER['QUERY_STRING'] ) ) {
@@ -352,6 +358,7 @@
 				PRINT "<span class=\"italic\">$t_now</span>";
 			PRINT '</td>';
 			PRINT '<td class="login-info-right">';
+				/*
 				PRINT '<form method="post" name="form_set_project" action="set_project.php">';
 
 				echo lang_get( 'email_project' ), ': ';
@@ -375,10 +382,10 @@
 					PRINT '</a>';
 				}
 
-				PRINT '</form>';
+				//PRINT '</form>';
 			PRINT '</td>';
 		PRINT '</tr>';
-		PRINT '</table>';
+		PRINT '</table>';*/
 	}
 
 	# --------------------
@@ -407,68 +414,13 @@
 			user_update_last_visit( $t_user_id );
 		}
 
-		echo "\t", '<br />', "\n";
-		echo "\t", '<hr size="1" />', "\n";
-
-		echo '<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr valign="top"><td>';
+		echo '<p id="footer">';
 		if ( ON == config_get( 'show_version' ) ) {
 			echo "\t", '<span class="timer"><a href="http://www.mantisbt.org/" title="Free Web Based Bug Tracker">Mantis ', MANTIS_VERSION, '</a>',
-					'[<a href="http://www.mantisbt.org/"  title="Free Web Based Bug Tracker" target="_blank">^</a>]</span>', "\n";
-		}
-		echo "\t", '<address>Copyright &copy; 2000 - 2008 Mantis Group</address>', "\n";
-
-		# only display webmaster email is current user is not the anonymous user
-		if ( ! is_page_name( 'login_page.php' ) && !current_user_is_anonymous() ) {
-			echo "\t", '<address><a href="mailto:', config_get( 'webmaster_email' ), '">', config_get( 'webmaster_email' ), '</a></address>', "\n";
-		}
-
-		# print timings
-		if ( ON == config_get( 'show_timer' ) ) {
-			$g_timer->print_times();
-		}
-
-		# print db queries that were run
-		if ( helper_show_queries() ) {
-			$t_count = count( $g_queries_array );
-			echo "\t",  $t_count, ' total queries executed.<br />', "\n";
-			$t_unique_queries = 0;
-			$t_shown_queries = array();
-			for ( $i = 0; $i < $t_count; $i++ ) {
-				if ( ! in_array( $g_queries_array[$i][0], $t_shown_queries ) ) {
-					$t_unique_queries++;
-					$g_queries_array[$i][3] = false;
-					array_push( $t_shown_queries, $g_queries_array[$i][0] );
-				} else {
-					$g_queries_array[$i][3] = true;
-				}
-			}
-			echo "\t",  $t_unique_queries . ' unique queries executed.<br />', "\n";
-			if ( ON == config_get( 'show_queries_list' ) ) {
-				echo "\t",  '<table>', "\n";
-				$t_total = 0;
-				for ( $i = 0; $i < $t_count; $i++ ) {
-					$t_time = $g_queries_array[$i][1];
-					$t_caller = $g_queries_array[$i][2];
-					$t_total += $t_time;
-					$t_style_tag = '';
-					if ( true == $g_queries_array[$i][3] ) {
-						$t_style_tag = ' style="color: red;"';
-					}
-					echo "\t",  '<tr valign="top"><td', $t_style_tag, '>', ($i+1), '</td>';
-					echo '<td', $t_style_tag, '>', $t_time , '</td>';
-					echo '<td', $t_style_tag, '><span style="color: gray;">', $t_caller, '</span><br />', string_html_specialchars($g_queries_array[$i][0]), '</td></tr>', "\n";
-				}
-
-				# @@@ Note sure if we should localize them given that they are debug info.  Will add if requested by users.
-				echo "\t", '<tr><td></td><td>', $t_total, '</td><td>SQL Queries Total Time</td></tr>', "\n";
-				echo "\t", '<tr><td></td><td>', round( microtime_float() - $g_request_time, 4 ), '</td><td>Page Request Total Time</td></tr>', "\n";
-				echo "\t",  '</table>', "\n";
-			}
+					' with <a href="/patches">modifications</a> by the DMDirc developers.</span>', "\n";
 		}
-
-		echo '</td><td><div align="right">';
-		echo '<a href="http://www.mantisbt.org" title="Free Web Based Bug Tracker"><img src="images/mantis_logo_button.gif" width="88" height="35" alt="Powered by Mantis Bugtracker" border="0" /></a>';
-		echo '</div></td></tr></table>';
+		echo "\t", 'Copyright &copy; 2000 - 2007 Mantis Group. Modifications Copyright &copy; 2008 DMDirc developers.', "\n";
+		echo '</p>';
 	}
 
 	# --------------------
@@ -507,13 +459,12 @@
 	# --------------------
 	# Print the main menu
 	function print_menu() {
+        }
+        function print_dmdirc_menu() {
 		if ( auth_is_user_authenticated() ) {
 			$t_protected = current_user_get_field( 'protected' );
 			$t_current_project = helper_get_current_project();
 
-			PRINT '<table class="width100" cellspacing="0">';
-			PRINT '<tr>';
-			PRINT '<td class="menu">';
 				$t_menu_options = array();
 
 				# Main Page
@@ -525,6 +476,9 @@
 				# View Bugs
 				$t_menu_options[] = '<a href="view_all_bug_page.php">' . lang_get( 'view_bugs_link' ) . '</a>';
 
+				# View bugs as grid
+				$t_menu_options[] = '<a href="view_grid_page.php">View Issue Grid</a>';
+
 				# Report Bugs
 				if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
 					$t_menu_options[] = string_get_bug_report_link();
@@ -596,24 +550,25 @@
 				# Logout (no if anonymously logged in)
 				if ( !current_user_is_anonymous() ) {
 					$t_menu_options[] = '<a href="logout_page.php">' . lang_get( 'logout_link' ) . '</a>';
+				} else {
+                                     $t_return_page = $_SERVER['PHP_SELF'];
+                                        if ( isset( $_SERVER['QUERY_STRING'] ) ) {
+                                                $t_return_page .=  '?' . $_SERVER['QUERY_STRING'];
 				}
-				PRINT implode( $t_menu_options, ' | ' );
-			PRINT '</td>';
-			PRINT '<td class="menu right nowrap">';
-				PRINT '<form method="post" action="jump_to_bug.php">';
 
-				if ( ON == config_get( 'use_javascript' ) ) {
-					$t_bug_label = lang_get( 'issue_id' );
-					PRINT "<input type=\"text\" name=\"bug_id\" size=\"10\" class=\"small\" value=\"$t_bug_label\" onfocus=\"if (this.value == '$t_bug_label') this.value = ''\" onblur=\"if (this.value == '') this.value = '$t_bug_label'\" />&nbsp;";
-				} else {
-					PRINT "<input type=\"text\" name=\"bug_id\" size=\"10\" class=\"small\" />&nbsp;";
+                                        $t_return_page = string_url(  $t_return_page );
+                                        $t_menu_options[] = '<a href="login_page.php?return=' . $t_return_page . '">' . lang_get( 'login_link' ) . '</a>';
+                                        if ( config_get( 'allow_signup' ) == ON ) {
+                                                $t_menu_options[] = '<a href="signup_page.php">' . lang_get( 'signup_link' ) . '</a>';
 				}
 
-				PRINT '<input type="submit" class="button-small" value="' . lang_get( 'jump' ) . '" />&nbsp;';
-				PRINT '</form>';
-			PRINT '</td>';
-			PRINT '</tr>';
-			PRINT '</table>';
+				}
+
+				foreach ($t_menu_options as $op) {
+					preg_match('/href="(.*?)(\?.*)?"/', $op, $link);
+					preg_match('#^/?(.*?)(\?.*)?$#', $_SERVER['PHP_SELF'], $page);
+					echo '<li', $link[1] == $page[1] ? ' class="active"' : '', '>', $op, '</li>';
+				}
 		}
 	}
 
@@ -656,12 +611,14 @@
 			$t_icon_path = config_get( 'icon_path' );
 
 			PRINT '<br />';
+			print '<span id="summarymenu">';
 			PRINT '<a href="summary_page.php"><img src="' . $t_icon_path.'synthese.gif" border="0" align="center" />' . lang_get( 'synthesis_link' ) . '</a> | ';
 			PRINT '<a href="summary_graph_imp_status.php"><img src="' . $t_icon_path.'synthgraph.gif" border="0" align="center" />' . lang_get( 'status_link' ) . '</a> | ';
 			PRINT '<a href="summary_graph_imp_priority.php"><img src="' . $t_icon_path.'synthgraph.gif" border="0" align="center" />' . lang_get( 'priority_link' ) . '</a> | ';
 			PRINT '<a href="summary_graph_imp_severity.php"><img src="' . $t_icon_path.'synthgraph.gif" border="0" align="center" />' . lang_get( 'severity_link' ) . '</a> | ';
 			PRINT '<a href="summary_graph_imp_category.php"><img src="' . $t_icon_path.'synthgraph.gif" border="0" align="center" />' . lang_get( 'category_link' ) . '</a> | ';
 			PRINT '<a href="summary_graph_imp_resolution.php"><img src="' . $t_icon_path.'synthgraph.gif" border="0" align="center" />' . lang_get( 'resolution_link' ) . '</a>';
+			print '</span>';
 		}
 	}
 
@@ -1089,7 +1046,7 @@
 	}
 
 	# --------------------
-	# Print a button to move the given bug to a different project
+	# Print a button to clone the given bug
 	function html_button_bug_create_child( $p_bug_id ) {
 		if ( ON == config_get( 'enable_relationship' ) ) {
 			if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) ) {
@@ -1100,6 +1057,35 @@
 		}
 	}
 
+        # Resolve Button - Dataforce 09/01/08
+        # --------------------
+        # Print a button to mark the bug as resolved
+        function html_button_bug_resolve( $p_bug_id) {
+                if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) ) {
+                        if (bug_get_field($p_bug_id, 'status') == config_get( 'bug_resolved_status_threshold' )) {
+				#PRINT '<td class="center">';
+	                        html_button( 'bug_actiongroup_page.php', "Confirm Resolution", array( 'bug_arr[]' => $p_bug_id, 'action' => 'CLOSE_CONFIRM' ) );
+				#PRINT '</td>';
+			}
+                }
+        }
+
+
+	# Change State Button - Dataforce 04/01/08
+        # --------------------
+        # Print a button to change the bug from private to public
+        function html_button_bug_change_view( $p_bug_id) {
+                if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) ) {
+                        $view_state = bug_get_field($p_bug_id, 'view_state');
+                        if ($view_state == VS_PUBLIC) {
+                                $label = 'Make Private';
+                        } else {
+                                $label = 'Make Public';
+                        }
+                        html_button( 'bug_actiongroup_page.php', $label, array( 'bug_arr[]' => $p_bug_id, 'action' => 'VIEW_STATUS', 'force' => 'TRUE' ) );
+                }
+        }
+
 	# --------------------
 	# Print a button to reopen the given bug
 	function html_button_bug_reopen( $p_bug_id ) {
@@ -1169,26 +1155,26 @@
 		$t_status = bug_get_field( $p_bug_id, 'status' );
 		$t_readonly = bug_is_readonly( $p_bug_id );
 
-		PRINT '<table><tr class="vcenter">';
+		#PRINT '<table><tr class="vcenter">';
 		if ( !$t_readonly ) {
 			# UPDATE button
-			echo '<td class="center">';
+		#	echo '<td class="center">';
 			html_button_bug_update( $p_bug_id );
-			echo '</td>';
+		#	echo '</td>';
 
 			# ASSIGN button
-			echo '<td class="center">';
+		#	echo '<td class="center">';
 			html_button_bug_assign_to( $p_bug_id );
-			echo '</td>';
+		#	echo '</td>';
 		}
 
 		# Change State button
-		echo '<td class="center">';
+		#echo '<td class="center">';
 		html_button_bug_change_status( $p_bug_id );
-		echo '</td>';
+		#echo '</td>';
 
 		# MONITOR/UNMONITOR button
-		echo '<td class="center">';
+		#echo '<td class="center">';
 		if ( !current_user_is_anonymous() ) {
 			if ( user_is_monitoring_bug( auth_get_current_user_id(), $p_bug_id ) ) {
 				html_button_bug_unmonitor( $p_bug_id );
@@ -1196,37 +1182,45 @@
 				html_button_bug_monitor( $p_bug_id );
 			}
 		}
-		echo '</td>';
+		#echo '</td>';
 
 		if ( !$t_readonly ) {
 			# CREATE CHILD button
-			echo '<td class="center">';
+		#	echo '<td class="center">';
 			html_button_bug_create_child( $p_bug_id );
-			echo '</td>';
+		#	echo '</td>';
 		}
 
 		if ( $t_resolved <= $t_status ) { # resolved is not the same as readonly
-			PRINT '<td class="center">';
+		#	PRINT '<td class="center">';
 			# REOPEN button
 			html_button_bug_reopen( $p_bug_id );
-			PRINT '</td>';
+		#	PRINT '</td>';
+
+			# RESOLVE button
+			html_button_bug_resolve( $p_bug_id );
 		}
 
 		if ( !$t_readonly ) {
 			# MOVE button
-			echo '<td class="center">';
+		#	echo '<td class="center">';
 			html_button_bug_move( $p_bug_id );
-			echo '</td>';
+		#	echo '</td>';
+
+			# Change State Button - Dataforce 04/01/08
+		#	echo '<td class="center">';
+			html_button_bug_change_view( $p_bug_id );
+		#	echo '</td>';
 		}
 
 		# DELETE button
-		echo '<td class="center">';
+		#echo '<td class="center">';
 		html_button_bug_delete( $p_bug_id );
-		echo '</td>';
+		#echo '</td>';
 
 		helper_call_custom_function( 'print_bug_view_page_custom_buttons', array( $p_bug_id ) );
 
-		echo '</tr></table>';
+		#echo '</tr></table>';
 	}
 
 ?>
diff -Pur mantis-1.1.2/core/my_view_inc.php bugs-test/core/my_view_inc.php
--- mantis-1.1.2/core/my_view_inc.php	2008-01-05 06:58:22.000000000 +0000
+++ bugs-test/core/my_view_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -292,6 +292,11 @@
 			} else {
 				echo ' - ' . $t_last_updated;
 			}
+
+			echo '<br />';
+			//echo 'Reported Version: <strong>'.$v_version.'</strong> ';
+			echo 'Target Version: <strong>'.$v_target_version.'</strong> ';
+			echo '';
 		?>
 		</span>
 	</td>
diff -Pur mantis-1.1.2/core/print_api.php bugs-test/core/print_api.php
--- mantis-1.1.2/core/print_api.php	2008-06-11 14:57:12.000000000 +0100
+++ bugs-test/core/print_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -636,13 +636,12 @@
 		echo '<option value=""></option>';
 		foreach ( $p_profiles as $t_profile ) {
 			extract( $t_profile, EXTR_PREFIX_ALL, 'v' );
+			# OS on Simple Report -- Dataforce, 03/01/08
 			$v_platform	= string_display( $v_platform );
-			$v_os		= string_display( $v_os );
-			$v_os_build	= string_display( $v_os_build );
 	
 			echo '<option value="' . $v_id . '"';
 			check_selected( $p_select_id, $v_id );
-			echo '>' . $v_platform . ' ' . $v_os . ' ' . $v_os_build . '</option>';
+			echo '>' . $v_platform . '</option>';
 		}
 	}
 	
diff -Pur mantis-1.1.2/core/relationship_api.php bugs-test/core/relationship_api.php
--- mantis-1.1.2/core/relationship_api.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/core/relationship_api.php	2008-07-03 19:20:51.000000000 +0100
@@ -715,21 +715,18 @@
  	# print HTML relationship form
 	function relationship_view_box( $p_bug_id ) {
 ?>
-<br/>
 
 <?php collapse_open( 'relationships' ); ?>
-<table class="width100" cellspacing="1">
+<table class="width100" cellspacing="1" style="border: 0px; margin-top: 10px;">
 <tr class="row-2" valign="top">
-	<td width="15%" class="form-title" colspan="2">
-		<?php
-			collapse_icon( 'relationships' );
-			echo lang_get( 'bug_relationships' );
-			if ( ON == config_get( 'relationship_graph_enable' ) ) {
-		?>
+	<td class="form-title" colspan="2" style="border: 0;">
+		<div style="float: right;">
 		<span class="small"><?php print_bracket_link( 'bug_relationship_graph.php?bug_id=' . $p_bug_id . '&amp;graph=relation', lang_get( 'relation_graph' ) ) ?></span>
 		<span class="small"><?php print_bracket_link( 'bug_relationship_graph.php?bug_id=' . $p_bug_id . '&amp;graph=dependency', lang_get( 'dependency_graph' ) ) ?></span>
+		</div>
 		<?php
-			}
+			echo '<h2>', lang_get( 'bug_relationships' ), '</h2>';
+
 		?>
 	</td>
 </tr>
@@ -741,7 +738,7 @@
 			if ( access_has_bug_level( config_get( 'update_bug_threshold' ), $p_bug_id ) ) {
 ?>
 <tr class="row-1">
-	<td class="category"><?php echo lang_get( 'add_new_relationship' ) ?></td>
+	<td class="category" width="15%"><?php echo lang_get( 'add_new_relationship' ) ?></td>
 	<td><?php echo lang_get( 'this_bug' ) ?>
 		<form method="post" action="bug_relationship_add.php">
 		<input type="hidden" name="src_bug_id" value="<?php echo $p_bug_id ?>" size="4" />
@@ -755,7 +752,7 @@
 		}
 ?>
 <tr>
-	<td colspan="2"><?php echo relationship_get_summary_html( $p_bug_id ) ?></td>
+	<td colspan="2" style="padding: 0px; border: 0px;"><?php echo relationship_get_summary_html( $p_bug_id ) ?></td>
 </tr>
 </table>
 
diff -Pur mantis-1.1.2/css/default.css bugs-test/css/default.css
--- mantis-1.1.2/css/default.css	2007-08-24 20:04:44.000000000 +0100
+++ bugs-test/css/default.css	2008-07-03 19:20:51.000000000 +0100
@@ -2,7 +2,7 @@
 	background-color: #ffffff; 
 	color: #000000; 
 	font-family: Verdana, Arial, Helvetica, sans-serif; 
-	font-size: 10pt; 
+
 	margin: 6px 4px; 
 }
 
@@ -28,26 +28,33 @@
 span				{ font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
 span.print			{ font-size: 8pt; }
 span.required 		{ font-size: 8pt; color: #bb0000; }
+td.category span.required { color: #fff; padding-right: 5px; }
 span.small 			{ font-size: 8pt; font-weight: normal; }
 span.pagetitle		{ font-size: 12pt; font-weight: bold; text-align: center }
 span.bracket-link	{ white-space: nowrap; }
 
-table				{ }
+span#summarymenu	{ display: block; margin-bottom: 5px; text-align: center; }
+span#summarymenu img 	{ vertical-align: middle; padding-right: 2px; }
+
+table				{ border-collapse: collapse; }
 table.hide			{ width: 100%; border: solid 0px #ffffff; }
 table.width100		{ width: 100%; border: solid 1px #000000; }
 table.width75		{ width: 75%;  border: solid 1px #000000; }
 table.width60		{ width: 60%;  border: solid 1px #000000; }
 table.width50		{ width: 50%;  border: solid 1px #000000; }
 
+td, th { border: 1px solid black; }
+
 td 					{ font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; padding: 4px; text-align: left; }
 td.center			{ text-align: center; }
 td.left				{ text-align: left; }
 td.right			{ text-align: right; }
-td.category			{ background-color: #c8c8e8; color: #000000; font-weight: bold; vertical-align : top; }
+td.category			{ background-color: #a33; color: #fff; font-weight: bold; vertical-align : top; }
 
 td.col-1			{ background-color: #d8d8d8; color: #000000; }
 td.col-2			{ background-color: #e8e8e8; color: #000000; }
-td.form-title		{ background-color: #ffffff; color: #000000; font-weight: bold; text-align: left; }
+td.form-title		{ background-color: #ffffff; color: #000000; font-weight: bold; }
+td.form-title h2	{ margin: 0px 0px 5px 0px; padding: 0px; }
 td.nopad			{ padding: 0px; }
 td.small-caption	{ font-size: 8pt; }
 td.print			{ font-size: 8pt; text-align: left; padding: 2px; }
@@ -59,10 +66,12 @@
 tr.spacer			{ background-color: #ffffff; color: #000000; height: 5px; }
 tr.row-1			{ background-color: #d8d8d8; color: #000000; }
 tr.row-2			{ background-color: #e8e8e8; color: #000000; }
-tr.row-category		{ background-color: #c8c8e8; color: #000000; font-weight: bold;}
+tr.row-category		{ background-color: #a33; color: #fff; font-weight: bold;}
+tr.row-category td a	{ color: #fff; }
 tr.row-category td  {  text-align:center; }
-tr.row-category2	{ background-color: #c8c8e8; color: #000000; }
-tr.row-category-history { background-color: #c8c8e8; color: #000000; font-weight: bold;}
+tr.row-category2	{ background-color: #a33; color: #fff; }
+tr.row-category2 td a { color: #fff; }
+tr.row-category-history { background-color: #a33; color: #fff; font-weight: bold;}
 tr.row-category-history td {  text-align: left; }
 tr.vcenter			{ vertical-align: middle; }
 tr.print			{ vertical-align: top; }
@@ -71,10 +80,10 @@
 #buglist tr			{ text-align: center; }
 
 tr.bugnote				{ vertical-align: top; }
-td.bugnote-public		{ background-color: #c8c8e8; color: #000000; font-weight: bold; width: 25%; line-height: 1.4; }
-td.bugnote-private		{ background-color: #e8e8e8; color: #000000; font-weight: bold; width: 25%; line-height: 1.4; }
-td.bugnote-note-public	{ background-color: #e8e8e8; color: #000000; width: 75%; }
-td.bugnote-note-private	{ background-color: #e8e8e8; color: #000000; width: 75%; }
+td.bugnote-public		{ background-color: #a33; color: #fff; font-weight: bold; width: 15%; line-height: 1.4; }
+td.bugnote-private		{ background-color: #e8e8e8; color: #000000; font-weight: bold; width: 15%; line-height: 1.4; }
+td.bugnote-note-public	{ background-color: #e8e8e8; color: #000000; width: 85%; }
+td.bugnote-note-private	{ background-color: #e8e8e8; color: #000000; width: 85%; }
 
 td.login-info-left		{ width: 33%; padding: 0px; text-align: left; }
 td.login-info-middle	{ width: 33%; padding: 0px; text-align: center; }
@@ -94,7 +103,7 @@
 	white-space: nowrap;
 }
 
-td.news-heading-public	{ background-color: #c8c8e8; color: #000000; text-align: left; border-bottom: 1px solid #000000; }
+td.news-heading-public	{ background-color: #a33; color: #fff; text-align: left; border-bottom: 1px solid #000000; }
 td.news-heading-private	{ background-color: #d8d8d8;       color: #000000; text-align: left; border-bottom: 1px solid #000000; }
 td.news-body			{ background-color: #ffffff;         color: #000000; padding: 16px; }
 
@@ -153,3 +162,267 @@
 
 .progress400				{ position: relative; width: 400px; border: 1px solid #d7d7d7; margin-top: 1em; margin-bottom: 1em; padding: 1px; }
 .progress400 .bar			{ display: block; position: relative; background: #6bba70; text-align: center; font-weight: normal; color: #333; height: 2em; line-height: 2em; }
+
+/** Fisheye hacks **/
+
+table.layout { margin:0; width:100%; padding:0; }
+table.layout td { border: 0; padding: 5px 2px; }
+td.layoutLeftPane, td.layoutMidPane, td.layoutRightPane, td.layoutRightPane2{ text-align:left; vertical-align:top; }
+td.layoutLeftPane{ padding:8px 0 8px 10px; }
+td.layoutMidPane{ padding:8px 0 8px 7px; }
+td.layoutRightPane{ width:100%; padding:8px 10px 8px 7px; }
+td.layoutRightPane2{ padding:8px 10px 0 7px; }
+td.layoutFullPane{ width:100%; padding:8px 10px 8px 10px; }
+
+
+table.layout { font-family:Verdana,Arial,sans-serif; line-height:1.166;}
+table.layout a:link, table.layout a:visited, table.layout  a:hover, #breadCrumb a:visited { text-decoration:none; }
+table.layout a:link, table.layout a:hover, #breadCrumb a:visited, #footer a:visited { color: #036; }
+table.layout a:visited { color:#158; }
+table.layout a:hover { text-decoration: underline; }
+table.layout img{ border:0; }
+
+.changesetDetail, .changesetList { display:block; color:#000000; font-size:.9em; }
+.changesetDetail{ margin-top:10px; padding:5px 5px 10px 35px; }
+.changesetDetail ul{ padding:0;margin:0; }
+.changesetList{ padding:5px 5px 5px 30px; }
+.changesetDetail pre, .changesetList pre{ font-size:105% }
+.changesetList pre{ margin:3px 0 3px 0; }
+.changesetDetail p{ margin:3px 0 3px 0; }
+.changesetList p{ margin:0; }
+.csId, .csAuthor{ font-weight:bold; }
+.csAge{ display:inline; }
+.csComment
+  { padding:3px; margin-top:2px; font-size:1.08em; font-family:Monaco, "Lucida Console", "Courier New", Courier, monospace;
+    display:block; background-color:#fcfefe; }
+.changesetDetail .csComment {
+    margin-top:8px;
+}
+li.csFilename{ list-style-type:none; padding-top:4px; white-space:nowrap; }
+.changesetDetail li.csFilename { margin-top: 0px; }
+.diffPaneChangset{ margin:10px; }
+.controls{ padding-top:10px; }
+.controls a, .controls a:link, .controls a:hover, .controls a:visited{ color:green; cursor:pointer; }
+.csMore{ font-style:italic; }
+
+table.layout .box, table.layout .box h3{ border: 1px #ccc solid }
+
+
+table.layout .box{ padding: 0px; margin: 0 0 7px 0; background-color:#fff; }
+table.layout .box h3
+  { color:#0a0a0a; font-size:.7em; font-family:Tahoma, Arial, Helvetica, sans-serif; border-width:0 0 1px 0;
+    background-color: #f9f9ff; padding:2px 0 2px 10px; margin:0px; }
+table.layout .boxMessage
+  { background:#fff; font-size:.75em; font-style:italic; color:#000000; margin:0px; padding:5px 5px 5px 30px; }
+table.layout .boxBody{ font-size:0.75em; padding: 0 15px 0 15px;}
+table.layout .boxIcon{ float:right;font-weight:normal;font-size:0.9em; margin:0; padding:0; }
+table.layout .boxIcon a { font-size: 0.7em; }
+table.layout .boxIcon img{ border-width:0px; margin-right:5px; }
+table.layout .boxIconText{ vertical-align:top; margin-right:5px; }
+
+/* Diff Sytles */
+.diffPane{ padding: 10px 20px; }
+.diff{ font-size:100%; white-space:nowrap; margin:0; padding:0; border:1px solid #ccc; }
+.diffFile, .diffFileA, .diffFileB, .diffCS{ font-size:.9em; text-align:right; font-weight:bold; }
+.diffCS{ font-weight:normal }
+.diffWarning td.diffContent, .diffSkipped td.diffContent{ vertical-align:middle; padding:0 5px 0 5px; font-size:.9em; }
+.diffWarning td.diffContent{ background:#ffffe1; }
+.diffSkipped td.diffContent{ background:#fafafa; color:#444; }
+.diffSection{ }
+.diffPre { font-size:100%; margin:0; padding:0; }
+.diffNav{ vertical-align:top; white-space:nowrap; }
+/* Note A=Deleted B=Added */
+.diffLineNumbers, .diffLineNumbersA, .diffLineNumbersB{ text-align:right; vertical-align:top; }
+.diffMarkerCol, .diffMarkerColA, .diffMarkerColB, .diffWarning td.diffMarkerCol, .diffSkipped td.diffMarkerCol
+  { padding-right:5px; text-align:center; vertical-align:middle; }
+.diffMarkerCol{ border-right:1px solid #ccc }
+.diffMarkerColA{ border-right:1px solid red; background-color:#EEBABA;}
+.diffMarkerColB{ border-right:1px solid green; background-color:#BAEEBA;}
+.diffWarning td.diffMarkerCol{ border-right:1px solid yellow; }
+.diffSkipped td.diffMarkerCol{ border-right:1px solid orange; }
+.diffSkipped td.diffLineNumbers{ font-size:.9em; font-style:italic; }
+.diffSkipped td.diffLineNumbers a:link, .diffSkipped td.diffLineNumbers a:visited{ color:orange; }
+.diffContent, .diffContentA, .diffContentB, .ediffContentA, .ediffContentB{ padding-left:4px; text-align:left; vertical-align:top; }
+
+.diffLineNumbersA, .diffContentA, a.diffFileA:link, a.diffFileA:hover, a.diffFileA:visited, .ediffChangedA
+  { background-color:#EEBABA; }
+.diffLineNumbersB, .diffContentB, a.diffFileB:link, a.diffFileB:hover, a.diffFileB:visited, .ediffChangedB
+  { background-color:#BAEEBA }
+.ediffChangedA{ background-color:#EEBABA; }
+.ediffChangedB{ background-color:#B0E0B0; }
+.ediffContentA{ background-color:#FFE0E0; }
+.ediffContentB{ background-color:#E0FFE0; }
+/* new diff styling */
+/*
+ * Source Styles
+ */
+table.diff {
+    font-size:100%;
+}
+.diff td {
+  font-family:monospace;
+  font-size:small;
+}
+
+.unifiedDiff td.lineContent {
+  width:99%;
+}
+.sidebysideDiff td.lineContent {
+  width:49%;
+}
+.noWrapping td.lineContent {
+  white-space:pre;
+}
+
+.wrapping td.lineContent {
+    white-space: pre; /* CSS2 */
+    white-space: -moz-pre-wrap; /* Mozilla */
+    white-space: -hp-pre-wrap; /* HP printers */
+    white-space: -o-pre-wrap; /* Opera 7 */
+    white-space: -pre-wrap; /* Opera 4-6 */
+    white-space: pre-wrap; /* CSS 2.1 */
+    white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
+    word-wrap: break-word; /* IE */
+    vertical-align: top;
+}
+.diff .commentForm {
+  /*border:1px solid orange;*/
+  background-color:#FFE7C6;
+  margin:0;
+  padding:5px 10px;
+}
+.diff td.lineNumber,
+.diff td.diffLineNumbers {
+  text-align:right;
+  padding-right:9px;
+  padding-left:5px;
+  color:#999;
+}
+.diffNav{
+  vertical-align:top;
+  white-space:nowrap;
+}
+
+/* Note A=Deleted B=Added */
+.diffLineNumbers,
+.diffLineNumbersA,
+.diffLineNumbersB {
+  text-align:right;
+  vertical-align:middle;
+  padding-right:9px;
+}
+
+.diffMarkerCol,
+.diffMarkerColA,
+.diffMarkerColB,
+.diffWarning td.diffMarkerCol,
+.diffSkipped td.diffMarkerCol {
+  padding-right: 5px;
+  text-align: center;
+  vertical-align: middle;
+}
+
+.diffMarkerCol {
+  border-right: 1px solid #ccc
+}
+.diffMarkerColA {
+  border-right: 1px solid red;
+}
+.diffMarkerColB {
+  border-right: 1px solid green;
+}
+.diffWarning td.diffMarkerCol {
+  border-right: 1px solid yellow;
+}
+.diffSkipped td.diffMarkerCol {
+  border-right: 1px solid orange;
+}
+.diffSkipped td.diffLineNumbers {
+  font-style: italic;
+}
+.diffSkipped td.diffLineNumbers a:link,
+.diffSkipped td.diffLineNumbers a:visited {
+  color: orange;
+}
+.diffContent,
+.diffContentA,
+.diffContentB,
+.ediffContentA,
+.ediffContentB {
+  padding-left: 4px;
+  text-align: left;
+  vertical-align:middle;
+}
+
+td.diffContentA,
+a.diffFileA:link,
+a.diffFileA:hover,
+a.diffFileA:visited,
+.ediffChangedA{
+  background-color:#EEBABA;
+}
+td.diffContentB,
+a.diffFileB:link,
+a.diffFileB:hover,
+a.diffFileB:visited,
+.ediffChangedB {
+  background-color:#BAEEBA;
+}
+
+.diff tr.sourceLine,
+.diff tr.lineHighlighted {
+  cursor:default;
+}
+
+.textDelMarker, .textAddMarker {
+  font-weight:bold;
+}
+td.diffLineNumbersA,
+.textDelMarker {
+  color:red;
+}
+td.diffLineNumbersB,
+.textAddMarker {
+  color:green;
+}
+
+/* Old school (pre-FishEye 1.3.5) colours */
+table.classicDiff .diffMarkerColA,
+table.classicDiff .diffLineNumbersA,
+table.classicDiff .diffContentA,
+table.classicDiff a.diffFileA:link,
+table.classicDiff a.diffFileA:hover,
+table.classicDiff a.diffFileA:visited,
+table.classicDiff .ediffChangedA,
+table.classicDiff .ediffContentA,
+table.classicDiff td.diffContentA
+  { background-color:#FFFFED; }
+table.classicDiff .diffMarkerColB,
+table.classicDiff .diffLineNumbersB,
+table.classicDiff .diffContentB,
+table.classicDiff a.diffFileB:link,
+table.classicDiff a.diffFileB:hover,
+table.classicDiff a.diffFileB:visited,
+table.classicDiff .ediffChangedB,
+table.classicDiff .ediffContentB,
+table.classicDiff td.diffContentB
+  { background-color:#FAFFFA; }
+table.classicDiff .ediffChangedA{ background-color:#FFFFCC; }
+table.classicDiff .ediffChangedB{ background-color:#F0FFF0; }
+
+.left {
+ float: none !important;
+ width: auto !important;
+}
+
+#footer {
+ font-size: small;
+ text-align: center;
+ margin: 10px 0px;
+ padding: 0px;
+}
+
+table.noborder, table.noborder > tbody > tr > td, table.noborder > tbody > tr > th { border: 0; }
+tr.spacer td, tr.noborder td { border: 0; }
+
+td.buildfailure { white-space: pre; font-family: monospace; }
diff -Pur mantis-1.1.2/history_inc.php bugs-test/history_inc.php
--- mantis-1.1.2/history_inc.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/history_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -20,37 +20,32 @@
 	# --------------------------------------------------------
 	# $Id: history_inc.php,v 1.32.2.1 2007-10-13 22:33:15 giallu Exp $
 	# --------------------------------------------------------
-?>
-<?php
+
 	# This include file prints out the bug history
 
 	# $f_bug_id must already be defined
-?>
-<?php
+
 	$t_core_path = config_get( 'core_path' );
 
 	require_once( $t_core_path.'history_api.php' );
-?>
 
-<?php
 	$t_access_level_needed = config_get( 'view_history_threshold' );
 	if ( !access_has_bug_level( $t_access_level_needed, $f_bug_id ) ) {
 		return;
 	}
 ?>
 
-<a name="history" id="history" /><br />
+<a name="history" id="history" />
 
 <?php
 	collapse_open( 'history' );
 	$t_history = history_get_events_array( $f_bug_id );
 ?>
-<table class="width100" cellspacing="0">
+<table class="width100" cellspacing="1" style="border: 0px; margin-top: 10px;">
 <tr>
-	<td class="form-title" colspan="4">
+	<td class="form-title" colspan="4" style="border: 0px;">
 <?php
-	collapse_icon( 'history' );
-	echo lang_get( 'bug_history' ) ?>
+	echo '<h2>', lang_get( 'bug_history' ), '</h2>' ?>
 	</td>
 </tr>
 <tr class="row-category-history">
diff -Pur mantis-1.1.2/.htaccess bugs-test/.htaccess
--- mantis-1.1.2/.htaccess	1970-01-01 01:00:00.000000000 +0100
+++ bugs-test/.htaccess	2008-07-03 19:20:51.000000000 +0100
@@ -0,0 +1,6 @@
+RewriteEngine On
+RewriteRule ^/?changelog/(.*?)$ http://fisheye.dmdirc.com/changelog/$1 [P]
+
+<Files account_prefs_update.php>
+ Deny from all
+</Files>
diff -Pur mantis-1.1.2/lang/strings_english.txt bugs-test/lang/strings_english.txt
--- mantis-1.1.2/lang/strings_english.txt	2008-05-22 15:34:01.000000000 +0100
+++ bugs-test/lang/strings_english.txt	2008-07-03 19:20:51.000000000 +0100
@@ -103,8 +103,8 @@
 $s_duplicate_of = "duplicate of";
 $s_has_duplicate = "has duplicate";
 $s_related_to = "related to";
-$s_dependant_on = "parent of";
-$s_blocks = "child of";
+$s_dependant_on = "depends on";
+$s_blocks = "blocks";
 
 $s_new_bug = 'New Issue';
 $s_bugnote_added = 'Note Added';
@@ -477,6 +477,7 @@
 $s_make_default = 'Make Default';
 $s_delete_profile = 'Delete Profile';
 $s_select_profile = 'Select Profile';
+$s_select_os = 'Select OS';
 $s_submit_button = 'Submit';
 
 # account_profile_update.php
diff -Pur mantis-1.1.2/my_view_page.php bugs-test/my_view_page.php
--- mantis-1.1.2/my_view_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/my_view_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -20,6 +20,7 @@
 	# --------------------------------------------------------
 	# $Id: my_view_page.php,v 1.17.2.1 2007-10-13 22:33:59 giallu Exp $
 	# --------------------------------------------------------
+
 ?>
 <?php
 	require_once( 'core.php' );
@@ -52,7 +53,15 @@
 	$t_bug_count = null;
 	$t_page_count = null;
 
-	$t_boxes = config_get( 'my_view_boxes' );
+	$all_boxes = config_get( 'my_view_boxes' );
+
+	$current_username = strtolower(user_get_field( $t_current_user_id, 'username' ));
+
+	if (isset($all_boxes[$current_username])) {
+		$t_boxes = $all_boxes[$current_username];
+	} else {
+		$t_boxes = $all_boxes['default'];
+	}
 	asort ($t_boxes);
 	reset ($t_boxes);
 	#print_r ($t_boxes);
@@ -61,7 +70,7 @@
 ?>
 
 <div align="center">
-<table class="hide" border="0" cellspacing="3" cellpadding="0">
+<table class="hide noborder" border="0" cellspacing="3" cellpadding="0">
 
 <?php
 	$t_status_legend_position = config_get( 'status_legend_position' );
diff -Pur mantis-1.1.2/summary_page.php bugs-test/summary_page.php
--- mantis-1.1.2/summary_page.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/summary_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -20,15 +20,13 @@
 	# --------------------------------------------------------
 	# $Id: summary_page.php,v 1.54.2.1 2007-10-13 22:34:43 giallu Exp $
 	# --------------------------------------------------------
-?>
-<?php
+
 	require_once( 'core.php' );
 
 	$t_core_path = config_get( 'core_path' );
 
 	require_once( $t_core_path.'summary_api.php' );
-?>
-<?php
+
 	access_ensure_project_level( config_get( 'view_summary_threshold' ) );
 
 	$f_project_id = gpc_get_int( 'project_id', helper_get_current_project() );
@@ -127,12 +125,10 @@
 <?php html_page_top1( lang_get( 'summary_link' ) ) ?>
 <?php html_page_top2() ?>
 
-<br />
 <?php print_summary_menu( 'summary_page.php' ) ?>
 
 <?php print_menu_graph() ?>
-<br />
-<table class="width100" cellspacing="1">
+<table class="width100 noborder" cellspacing="1">
 <tr>
 	<td class="form-title" colspan="2">
 		<?php echo lang_get( 'summary_title' ) ?>
diff -Pur mantis-1.1.2/view_all_inc.php bugs-test/view_all_inc.php
--- mantis-1.1.2/view_all_inc.php	2007-10-13 23:36:41.000000000 +0100
+++ bugs-test/view_all_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -78,11 +78,17 @@
 		<?php
 	}
 ?>
-<br />
 <form name="bug_action" method="get" action="bug_actiongroup_page.php">
-<table id="buglist" class="width100" cellspacing="1">
-<tr>
-	<td class="form-title" colspan="<?php echo $col_count - 2; ?>">
+<table id="buglist" class="width100" cellspacing="1" style="border: 0px; margin-top: 10px;">
+<tr class="noborder">
+	<td class="form-title" colspan="<?php echo $col_count; ?>">
+<div style="float: right;">
+                <span class="small"> <?php
+                        # -- Page number links --
+                        $f_filter       = gpc_get_int( 'filter', 0);
+                        print_page_links( 'view_all_bug_page.php', 1, $t_page_count, (int)$f_page_number, $f_filter );
+                ?> </span>
+</div>
 		<?php
 			# -- Viewing range info --
 
@@ -97,9 +103,9 @@
 				$v_end   = $v_start + sizeof( $rows ) -1;
 			}
 
-			echo lang_get( 'viewing_bugs_title' );
-			echo " ($v_start - $v_end / $t_bug_count)";
-		?>
+			echo '<h2>', lang_get( 'viewing_bugs_title' );
+			echo " ($v_start - $v_end / $t_bug_count)</h2>";
+		/* ?>
 
 		<span class="small"> <?php
 				# -- Print and Export links --
@@ -111,15 +117,7 @@
 				    echo '&nbsp;';
 				}
 				print_bracket_link( 'csv_export.php', lang_get( 'csv_export' ) );
-		?> </span>
-	</td>
-
-	<td class="right" colspan="2">
-		<span class="small"> <?php
-			# -- Page number links --
-			$f_filter	= gpc_get_int( 'filter', 0);
-			print_page_links( 'view_all_bug_page.php', 1, $t_page_count, (int)$f_page_number, $f_filter );
-		?> </span>
+		?> </span> */ ?>
 	</td>
 </tr>
 <?php # -- Bug list column header row -- ?>
@@ -132,10 +130,6 @@
 ?>
 </tr>
 
-<?php # -- Spacer row -- ?>
-<tr class="spacer">
-	<td colspan="<?php echo $col_count; ?>"></td>
-</tr>
 <?php
 	function write_bug_rows ( $p_rows )
 	{
@@ -183,7 +177,7 @@
 
 	# -- ====================== MASS BUG MANIPULATION =================== --
 ?>
-	<tr>
+	<tr class="noborder">
 		<td class="left" colspan="<?php echo $col_count-2; ?>">
 <?php
 		if ( $t_checkboxes_exist && ON == config_get( 'use_javascript' ) ) {
diff -Pur mantis-1.1.2/view_grid_inc.php bugs-test/view_grid_inc.php
--- mantis-1.1.2/view_grid_inc.php	1970-01-01 01:00:00.000000000 +0100
+++ bugs-test/view_grid_inc.php	2008-07-03 19:20:51.000000000 +0100
@@ -0,0 +1,248 @@
+<?php
+# Mantis - a php based bugtracking system
+
+# Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
+# Copyright (C) 2002 - 2007  Mantis Team   - mantisbt-dev@lists.sourceforge.net
+
+# Mantis is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Mantis is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Mantis.  If not, see <http://www.gnu.org/licenses/>.
+
+	# --------------------------------------------------------
+	# $Id: view_all_inc.php,v 1.172.2.1 2007-10-13 22:34:48 giallu Exp $
+	# --------------------------------------------------------
+?>
+<?php
+	$t_core_path = config_get( 'core_path' );
+
+	require_once( $t_core_path.'current_user_api.php' );
+	require_once( $t_core_path.'bug_api.php' );
+	require_once( $t_core_path.'string_api.php' );
+	require_once( $t_core_path.'date_api.php' );
+	require_once( $t_core_path.'icon_api.php' );
+	require_once( $t_core_path.'columns_api.php' );
+
+	$t_filter = current_user_get_bug_filter();
+
+	if( $t_filter ) {
+		list( $t_sort, ) = split( ',', $t_filter['sort'] );
+		list( $t_dir, ) = split( ',', $t_filter['dir'] );
+	}
+	
+	$t_checkboxes_exist = false;
+
+	$t_icon_path = config_get( 'icon_path' );
+	$t_update_bug_threshold = config_get( 'update_bug_threshold' );
+
+	$t_columns = helper_get_columns_to_view( COLUMNS_TARGET_VIEW_PAGE );
+
+	$col_count = sizeof( $t_columns );
+
+	$t_filter_position = config_get( 'filter_position' );
+
+	# -- ====================== FILTER FORM ========================= --
+	if ( ( $t_filter_position & FILTER_POSITION_TOP ) == FILTER_POSITION_TOP ) {
+		filter_draw_selection_area( $f_page_number );
+	}
+	# -- ====================== end of FILTER FORM ================== --
+
+
+	# -- ====================== BUG LIST ============================ --
+
+	$t_status_legend_position = config_get( 'status_legend_position' );
+
+	if ( $t_status_legend_position == STATUS_LEGEND_POSITION_TOP || $t_status_legend_position == STATUS_LEGEND_POSITION_BOTH ) {
+		html_status_legend();
+	}
+
+# @@@ (thraxisp) this may want a browser check  ( MS IE >= 5.0, Mozilla >= 1.0, Safari >=1.2, ...)
+	if ( ( ON == config_get( 'dhtml_filters' ) ) && ( ON == config_get( 'use_javascript' ) ) ){
+		?>
+		<script type="text/javascript" language="JavaScript">
+		<!--
+			var string_loading = '<?php echo lang_get( 'loading' );?>';
+		// -->
+		</script>
+		<script type="text/javascript" language="JavaScript" src="javascript/xmlhttprequest.js"></script>
+		<script type="text/javascript" language="JavaScript" src="javascript/addLoadEvent.js"></script>
+		<script type="text/javascript" language="JavaScript" src="javascript/dynamic_filters.js"></script>
+		<?php
+	}
+?>
+<br />
+<form name="bug_action" method="get" action="bug_actiongroup_page.php">
+<style type="text/css">
+ table.gridtable div.gridissue {
+  border: 2px solid #99f;
+  margin: 3px;
+  width: 150px;
+  height: 75px;
+  -moz-border-radius: 10px;
+  overflow: hidden;
+  display: inline-block;
+  text-align: left;
+  font-size: small;
+ }
+
+ table.gridtable div.gridissue div.issuenumber {
+  text-align: left;
+  margin-bottom: 0px;
+  padding-bottom: 0px;
+ }
+
+ table.gridtable {
+  border-collapse: collapse;
+ }
+
+ table.gridtable td {
+  border: 1px solid black;
+ }
+
+ table.gridtable td, table.gridtable th {
+  background-color: #a33; color: #fff; 
+  text-align: center;
+  vertical-align: top;
+ }
+
+ table.gridtable td.container {
+  padding: 10px 0px;
+  background-color: transparent;
+  color: #000;
+ }
+</style>
+<table id="buglist" class="gridtable width100" cellspacing="1">
+<?php
+
+function mod_color($orig_color, $mod, $mod_color){
+    /*
+        $orig_color - original html color, hex
+        $mod_color - modifying color, hex
+        $mod - modifier '+' or '-'
+        usage: mod_color('CCCCCC', '+', '000033')
+    */
+    // does quick validation
+    preg_match("/([0-9]|[A-F]){6}/i",$orig_color,$orig_arr);
+    preg_match("/([0-9]|[A-F]){6}/i",$mod_color,$mod_arr);
+    if ($orig_arr[0] && $mod_arr[0]) {
+        for ($i=0; $i<6; $i=$i+2) {
+            $orig_x = substr($orig_arr[0],$i,2);
+            $mod_x = substr($mod_arr[0],$i,2);
+            if ($mod == '+') { $new_x = hexdec($orig_x) + hexdec($mod_x); }
+            else { $new_x = hexdec($orig_x) - hexdec($mod_x); }
+            if ($new_x < 0) { $new_x = 0; }
+            else if ($new_x > 255) { $new_x = 255; };
+            $new_x = dechex($new_x);
+            $ret .= $new_x;
+        }
+        return $ret;
+    } else { return false; }
+}
+
+	$t_gridx = 'handler_id';
+	$t_gridy = 'target_version';
+
+	function write_bug_rows ( $p_rows )
+	{
+		global $t_columns, $t_filter, $t_gridx, $t_gridy;
+
+		mark_time( 'begin loop' );
+
+		# -- Stick the bugs into our matrix --
+
+		$t_matrix = array();
+		$t_headers = array();
+		$t_rheaders = array();
+
+		foreach ($p_rows as $t_row) {
+			$t_matrix[$t_row[$t_gridy]][$t_row[$t_gridx]][] = $t_row;
+			$t_headers[$t_row[$t_gridx]] = $t_row;
+			$t_rheaders[$t_row[$t_gridy]] = $t_row;
+		}
+
+		ksort($t_matrix);
+		ksort($t_headers);
+
+		// Print our headers
+		echo '<tr><th></th>';
+
+		foreach ($t_headers as $t_header) {
+			helper_call_custom_function('print_column_value', array($t_gridx, $t_header));
+		}
+		echo '</tr>';
+
+		foreach ($t_matrix as $t_row => $t_rows) {
+			echo '<tr>';
+			helper_call_custom_function('print_column_value', array($t_gridy, $t_rheaders[$t_row]));
+
+			foreach ($t_headers as $t_header => $t_example) {
+				echo '<td class="container">';
+
+				$t_issues = isset($t_rows[$t_header]) ? $t_rows[$t_header] : array();
+
+				foreach ($t_issues as $t_issue) {
+					echo '<div class="gridissue" style="background-color: ';
+					echo get_status_color($t_issue['status']), '; border: 2px solid #';
+					echo mod_color(get_status_color($t_issue['status']), '-', '383838'), '">';
+					echo '<div class="issuenumber">'; print_bug_link($t_issue['id'], false); echo '</div>';
+					echo '<div class="summary">';
+					echo string_display_line_links($t_issue['summary']);
+					echo '</div></div>';
+				}
+
+				echo '</td>';
+			}			
+
+			echo '</tr>';
+		}
+
+		/*
+		var_dump($t_matrix);
+
+		$t_rows = sizeof( $p_rows ); 
+		for( $i=0; $i < $t_rows; $i++ ) {
+			$t_row = $p_rows[$i];
+
+			# choose color based on status
+			$status_color = get_status_color( $t_row['status'] );
+
+			echo '<tr bgcolor="', $status_color, '" border="1">';
+
+			foreach( $t_columns as $t_column ) {
+				$t_column_value_function = 'print_column_value';
+				helper_call_custom_function( $t_column_value_function, array( $t_column, $t_row ) );
+			}
+
+			echo '</tr>';
+		}*/
+	}
+
+
+	write_bug_rows($rows);
+	# -- ====================== end of BUG LIST ========================= --
+?>
+</table>
+</form>
+
+<?php
+
+	mark_time( 'end loop' );
+
+	if ( $t_status_legend_position == STATUS_LEGEND_POSITION_BOTTOM || $t_status_legend_position == STATUS_LEGEND_POSITION_BOTH ) {
+		html_status_legend();
+	}
+
+	# -- ====================== FILTER FORM ========================= --
+	if ( ( $t_filter_position & FILTER_POSITION_BOTTOM ) == FILTER_POSITION_BOTTOM ) {
+		filter_draw_selection_area( $f_page_number );
+	}
+	# -- ====================== end of FILTER FORM ================== --
+?>
diff -Pur mantis-1.1.2/view_grid_page.php bugs-test/view_grid_page.php
--- mantis-1.1.2/view_grid_page.php	1970-01-01 01:00:00.000000000 +0100
+++ bugs-test/view_grid_page.php	2008-07-03 19:20:51.000000000 +0100
@@ -0,0 +1,73 @@
+<?php
+# Mantis - a php based bugtracking system
+
+# Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
+# Copyright (C) 2002 - 2007  Mantis Team   - mantisbt-dev@lists.sourceforge.net
+
+# Mantis is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Mantis is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Mantis.  If not, see <http://www.gnu.org/licenses/>.
+
+	# --------------------------------------------------------
+	# $Revision: 1.62.2.1 $
+	# $Author: giallu $
+	# $Date: 2007-10-13 22:34:48 $
+	#
+	# $Id: view_all_bug_page.php,v 1.62.2.1 2007-10-13 22:34:48 giallu Exp $
+	# --------------------------------------------------------
+?>
+<?php
+	require_once( 'core.php' );
+
+	$t_core_path = config_get( 'core_path' );
+
+	require_once( $t_core_path.'compress_api.php' );
+	require_once( $t_core_path.'filter_api.php' );
+	require_once( $t_core_path.'last_visited_api.php' );
+?>
+<?php auth_ensure_user_authenticated() ?>
+<?php
+	$f_page_number = 1;
+
+	$t_per_page = -1;
+	$t_bug_count = null;
+	$t_page_count = null;
+
+	$rows = filter_get_bug_rows( $f_page_number, $t_per_page, $t_page_count, $t_bug_count, null, null, null, true );
+	if ( $rows === false ) {
+		print_header_redirect( 'view_all_set.php?type=0' );
+	}
+
+	$t_bugslist = Array();
+	$t_row_count = sizeof( $rows );
+	for($i=0; $i < $t_row_count; $i++) {
+		array_push($t_bugslist, $rows[$i]["id"] );
+	}
+
+	gpc_set_cookie( config_get( 'bug_list_cookie' ), implode( ',', $t_bugslist ) );
+
+	compress_enable();
+
+	html_page_top1( lang_get( 'view_bugs_link' ) );
+
+	if ( current_user_get_pref( 'refresh_delay' ) > 0 ) {
+		html_meta_redirect( 'view_grid_page.php?page_number='.$f_page_number, current_user_get_pref( 'refresh_delay' )*60 );
+	}
+
+	html_page_top2();
+
+	print_recently_visited();
+
+	include( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'view_grid_inc.php' );
+
+	html_page_bottom1( __FILE__ );
+?>
