diff --git a/index.php b/index.php
index d55706a..593069c 100644
--- a/index.php
+++ b/index.php
@@ -18,14 +18,23 @@
 
 	<div class="sideitem">
 		<h6><a href="https://hudson.eclipse.org/xtext/view/Xtext-Xtend/job/xtext-xtend/rssAll"><img style="float:right" alt="Build Feeds" src="/modeling/images/rss-atom10.gif"/></a>Build News</h6>
-		<ul>
-			<li><a href="https://hudson.eclipse.org/xtext/view/Xtext-Xtend/job/xtext-xtend/rssAll">Hudson build feed</a></li>
-		</ul>
+		<?php
+		include($_SERVER["DOCUMENT_ROOT"] . "/modeling/tmf/scripts/build-status.php");
+
+		$feed = new BuildFeed ( "https://hudson.eclipse.org/xtext/view/Xtext-Xtend/job/xtext-xtend/rssAll" );
+		$builds = array_slice($feed->posts, 0, 7);
+		foreach ( $builds as $build ) {
+			$clDate = gmdate('d.M.Y H:i:s', date($build->ts));
+			print "<p><img src=\"/modeling/tmf/images/$build->status.png\" alt=\"$build->status\"/>  <a target=\"_blank\" href=\"$build->link\"  title=\"$build->title\">#$build->num</a> $clDate";
+			print "</p>\n";
+		}
+		?>
 	</div>
 	<div class="sideitem">
 		<h6>News on Twitter</h6>
-		<a class="twitter-timeline" href="https://twitter.com/xtext" data-widget-id="509687897004318720">Tweets von @xtext</a>
-		<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>	</div>
+		<a class="twitter-timeline" href="https://twitter.com/xtext" data-widget-id="509687897004318720">@xtext Tweets</a>
+		<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+	</div>
 	<div class="sideitem">
 		<h6>Modeling Corner</h6>
 		<p>Want to <a href="http://wiki.eclipse.org/index.php/Modeling_Corner">contribute</a> models, projects, files, ideas, utilities, or code to 
@@ -54,7 +63,7 @@
 
 $pageTitle = "Eclipse Modeling - TMF - Home";
 $pageKeywords = "Xtext Textual Modeling Domain-specific language DSL"; // TODO: add something here
-$pageAuthor = "Sven Efftinge, Nick Boldt";
+$pageAuthor = "Sven Efftinge, Dennis Huebner";
 
 $App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/modeling/includes/index.css"/>' . "\n");
 $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
diff --git a/indexTest.php b/indexTest.php
index 58484bc..593069c 100644
--- a/indexTest.php
+++ b/indexTest.php
@@ -25,7 +25,7 @@
 		$builds = array_slice($feed->posts, 0, 7);
 		foreach ( $builds as $build ) {
 			$clDate = gmdate('d.M.Y H:i:s', date($build->ts));
-			print "<p><img src=\"/modeling/tmf/images/$build->status.png\" alt=\"$build->status\"/>$nbsp;<a href=\"$build->link\"  title=\"$build->title\">#$build->num</a> $clDate";
+			print "<p><img src=\"/modeling/tmf/images/$build->status.png\" alt=\"$build->status\"/>  <a target=\"_blank\" href=\"$build->link\"  title=\"$build->title\">#$build->num</a> $clDate";
 			print "</p>\n";
 		}
 		?>
