diff --git a/admin_news.php b/admin_news.php
index bff73b4..3a01be9 100644
--- a/admin_news.php
+++ b/admin_news.php
@@ -72,7 +72,7 @@ if (empty($_POST) === false) {
 	if ($action === 's') {
 		echo '<font color="green"><b>News successfully updated!</b></font>';
 		list($title, $text) = array(mysql_znote_escape_string($_POST['title']), mysql_znote_escape_string($_POST['text']));
-		mysql_update("UPDATE `znote_news` SET `title`='$title',`text`='$text' WHERE `id`='$id';") or die("FUCK!");
+		mysql_update("UPDATE `znote_news` SET `title`='$title',`text`='$text' WHERE `id`='$id';");
 		$cache = new Cache('engine/cache/news');
 		$news = fetchAllNews();
 		$cache->setContent($news);
diff --git a/admin_reports.php b/admin_reports.php
index 77d7017..df8b3fb 100644
--- a/admin_reports.php
+++ b/admin_reports.php
@@ -12,6 +12,9 @@ $statusTypes = array(
     4 => '<font color="grey">Rejected</font>',
     5 => '<font color="green"><b>Fixed</b></font>'
 );
+// Which status IDs should give option to add to changelog?
+$statusChangeLog = array(0,5);
+
 // Autohide rows that have these status IDs:
 $hideStatus = array(3, 4, 5);
 
@@ -37,10 +40,16 @@ if (!empty($_POST)) {
     $customPoints = getValue($_POST['customPoints']);
     $reportId = getValue($_POST['id']);
 
+    $changelogReportId = getValue($_POST['changelogReportId']);
+    $changelogValue = getValue($_POST['changelogValue']);
+    $changelogText = getValue($_POST['changelogText']);
+    $changelogStatus = ($changelogReportId !== false && $changelogValue === '2' && $changelogText !== false) ? true : false;
+
     if ($customPoints !== false) $price = (int)($price + $customPoints);
 
     // Update SQL
     mysql_update("UPDATE `znote_player_reports` SET `status`='$status' WHERE `id`='$reportId' LIMIT 1;");
+    echo "<h1>Report status updated to ".$statusTypes[(int)$status] ."!</h1>";
     // Update local array representation
     foreach ($reports as $sid => $sa) 
         foreach ($sa as $rid => $ra) 
@@ -50,6 +59,24 @@ if (!empty($_POST)) {
                 unset($reports[$sid][$rid]);
             }
 
+    // If we should do anything with changelog:
+    if ($changelogStatus) {
+        $time = time();
+        // Check if changelog exist (`id`, `text`, `time`, `report_id`, `status`)
+        $changelog = mysql_select_single("SELECT * FROM `znote_changelog` WHERE `report_id`='$changelogReportId' LIMIT 1;");
+        // If changelog exist
+        if ($changelog !== false) {
+            // Update it
+            mysql_update("UPDATE `znote_changelog` SET `text`='$changelogText', `time`='$time' WHERE `id`='".$changelog['id']."' LIMIT 1;");
+            echo "<h2>Changelog message updated!</h2>";
+        } else {
+            // Create it
+            mysql_insert("INSERT INTO `znote_changelog` (`text`, `time`, `report_id`, `status`) 
+                VALUES ('$changelogText', '$time', '$changelogReportId', '$status');");
+            echo "<h2>Changelog message created!</h2>";
+        }
+        
+    }
     // If we should give user price
     if ($price > 0) {
         $account = mysql_select_single("SELECT `a`.`id`, `a`.`email` FROM `accounts` AS `a` 
@@ -104,7 +131,21 @@ if (!empty($_POST)) {
                     echo "<option value='$price'>$price</option>";
                 }
                 ?>
-            </select> + <input name="customPoints" type="text" style="width: 50px;" placeholder="0"><br><br>
+            </select> + <input name="customPoints" type="text" style="width: 50px;" placeholder="0"><br>
+            <?php
+            if (in_array($report['status'], $statusChangeLog)) {
+                ?>
+                <br>
+                <input type="hidden" name="changelogReportId" value="<?php echo $report['id']; ?>">
+                Add / update changelog message? <select name="changelogValue">
+                    <option value="1">No</option>
+                    <option value="2">Yes</option>
+                </select><br>
+                <textarea rows="7" cols="40" maxlength="254" name="changelogText"></textarea>
+                <?php
+            }
+            ?>
+            <br>
             <input type="submit" value="Update Report" style="width: 100%;">
         </form>
     </div>
diff --git a/changelog.php b/changelog.php
new file mode 100644
index 0000000..b30f3e3
--- /dev/null
+++ b/changelog.php
@@ -0,0 +1,28 @@
+<?php require_once 'engine/init.php'; include 'layout/overall/header.php'; ?>
+
+<h1>Changelog</h1>
+<?php
+$changelogs = mysql_select_multi("SELECT `id`, `text`, `time`, `report_id`, `status` FROM `znote_changelog` ORDER BY `id` DESC;");
+if ($changelogs !== false) {
+	?>
+	<table>
+		<tr class="yellow">
+			<td>Changelogs</td>
+		</tr>
+		<?php
+		foreach ($changelogs as $changelog) {
+		?>
+		<tr>
+			<td><b><?php echo getClock($changelog['time'], true, true); ?></b><br><?php echo $changelog['text']; ?></td>
+		</tr>
+		<?php
+		}
+		?>
+	</table>
+	<?php
+} else {
+	?>
+
+	<?php
+}
+include 'layout/overall/footer.php'; ?>
\ No newline at end of file
diff --git a/engine/database/connect.php b/engine/database/connect.php
index 1acb262..b64ae59 100644
--- a/engine/database/connect.php
+++ b/engine/database/connect.php
@@ -107,6 +107,15 @@ CREATE TABLE IF NOT EXISTS `znote_player_reports` (
   PRIMARY KEY (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 
+CREATE TABLE IF NOT EXISTS `znote_changelog` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `text` VARCHAR(255) NOT NULL,
+  `time` INT(11) NOT NULL,
+  `report_id` INT(11) NOT NULL,
+  `status` TINYINT(3) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`)
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
 CREATE TABLE IF NOT EXISTS `znote_shop` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `type` int(11) NOT NULL,
diff --git a/layout/menu.php b/layout/menu.php
index c276a77..15d6b2e 100644
--- a/layout/menu.php
+++ b/layout/menu.php
@@ -5,6 +5,7 @@
 
 	<li><a href="forum.php">Community</a>
 		<ul> <!-- (sub)dropdown COMMUNITY -->
+			<li><a href="market.php">Item Market</a></li>
 			<li><a href="gallery.php">Gallery</a></li>
 			<li><a href="support.php">Support</a></li>
 			<li><a href="houses.php">Houses</a></li>
@@ -27,5 +28,5 @@
 			<li><a href="guildwar.php">Guild Wars</a></li>
 		</ul>
 	<?php } ?></li>
-	
+	<li><a href="changelog.php">Changelog</a></li>
 </ul>
\ No newline at end of file
diff --git a/onlinelist.php b/onlinelist.php
index 52585aa..b6efd08 100644
--- a/onlinelist.php
+++ b/onlinelist.php
@@ -14,7 +14,8 @@ if ($array) {
 		</tr>
 			<?php
 			foreach ($array as $value) {
-			echo '<tr>';
+			$url = url("characterprofile.php?name=". $value['name']);
+			echo '<tr class="special" onclick="javascript:window.location.href=\'' . $url . '\'">';
 			echo '<td><a href="characterprofile.php?name='. $value['name'] .'">'. $value['name'] .'</a></td>';
 			echo '<td>'. $value['level'] .'</td>';
 			echo '<td>'. vocation_id_to_name($value['vocation']) .'</td>';