diff --git a/index.php b/index.php
index 089d3db..07733da 100644
--- a/index.php
+++ b/index.php
@@ -1,128 +1,4 @@
 <?php
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
-require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
-$App 	= new App();
-$Nav	= new Nav();
-$Menu 	= new Menu();
-include($App->getProjectCommon());
 
-	#
-	# Begin: page-specific settings.  Change these.
-	$pageTitle 		= "Dynamic Languages Toolkit";
-	$pageKeywords	= "dltk, tcl, ruby, python, javascript, languages, eclipse, ide";
-	$pageAuthor		= "Andrey Platov";
-
-	# Add page-specific Nav bars here
-	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
-	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
-	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
-	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
-
-	# End: page-specific settings
-	#
-
-	ob_start();
-?>
-
-<div id="maincontent">
-	<div id="midcolumn">
-<?php /*
-		<div style="float:right">
-			<a href="http://download.eclipse.org/technology/dltk/downloads/drops/R1.0/S-1.0M7-200905061301/">1.0M7 Released!</b></a><img style="vertical-align:bottom" src="/images/updated.png"/>
-		</div>
-*/?>
-		<h1><?=$pageTitle?></h1>
-		<!--h2>Section title</h2-->
-			<p>Dynamic Languages Toolkit (DLTK) is a tool for vendors, researchers, and end-users who rely on dynamic languages.
-			 DLTK is comprised of a set of extensible frameworks designed to reduce the complexity of building full featured
-			 development environments for dynamic languages such as PHP and Perl.</p>
-			<p>Besides a set of frameworks DLTK provides exemplary Tcl, Ruby, Javascript and Python development environments ready to use out of the box.</p>
-		<div class="homeitem">
-			<h3>Schedule</h3>
-			<ul>
-				<li>December, 2016 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.7/">DLTK 5.7</a></li>
-			</ul>
-			<ul>
-				<li>September, 2016 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.6/">DLTK 5.6</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>June, 2016 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.5/">DLTK 5.5</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>February, 2016 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.4/">DLTK 5.4</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>October, 2015 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.3.1/">DLTK 5.3.1</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>October, 2015 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.3/">DLTK 5.3</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>June, 2015 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.2/">DLTK 5.2</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>February, 2015 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.1.1/">DLTK 5.1.1</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>June, 2014 - <a href="http://download.eclipse.org/technology/dltk/updates-dev/5.1/">DLTK 5.1</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>June, 2013 - <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R5.0/R-5.0-201306060709/">DLTK 5.0</a><b> - DONE</b></li>
-			</ul>
-			<ul>
-				<li>June 26, 2012 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R4.0/R-4.0-201206120903/">DLTK 4.0</a></b> - <b>DONE</b></li>
-			</ul>
-			<ul>
-				<li>September 6, 2011 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R3.0/S-3.0.1-201108261011/">DLTK 3.0.1</a></b> - <b>DONE</b></li>
-			</ul>
-			<ul>
-				<li>June 23, 2010 - <b><a href="http://download.eclipse.org/technology/dltk/downloads/drops/R2.0/R-2.0-201006161315/">DLTK 2.0</a></b> - <b>DONE</b></li>
-			</ul>
-			<h3>Tutorials</h3>
-			<ul>
-				<li><a href="http://www.ibm.com/developerworks/edu/os-dw-os-eclipse-octave.html">Use the Dynamic Languages Toolkit (DLTK) to create your own IDE</a></li>
-				<li>Read <a href="http://wiki.eclipse.org/A_guide_to_building_a_DLTK-based_language_IDE">Building an IDE with DLTK</a> Guide.</li>
-			</ul>
-			<h3>Quick Links</h3>
-			<ul>
-				<li><a href="http://wiki.eclipse.org/DLTK_Based_Projects">Products and Projects</a> built on DLTK</li>
-				<li>See <a href="http://live.eclipse.org/node/548">DLTK 0.95 in action</a> (Video) on Eclipse Live.</li>
-			</ul>
-			<h3>Events</h3>
-			<ul>
-				<li>DLTK 0.95 released (June 23, 2008). Use <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R0.95/R-0.95-200806230716/">DLTK 0.95 download page</a> or install as a part of <a href="http://www.eclipse.org/ganymede/">Ganymede</a>.</li>
-				<li><a href="http://www.eclipsecon.org/2008/?page=sub/&id=270">DLTK Tutorial</a> at EclipseCon 2008, March 17-20, Santa Clara, USA.</li>
-				<li>DLTK 0.9 released (June 29, 2007).</li>
-				<li><a href="http://www.eclipsecon.org/2007/index.php?page=sub/&id=3721">DLTK Talk</a> at EclipseCon 2007, March 5-8, Santa Clara, USA.</li>
-			</ul>
-		</div>
-		<!--div class="homeitem">
-			<h3>News and Events</h3>
-			<ul>
-				<li>DLTK 0.95 released (June 23, 2008). Use <a href="http://download.eclipse.org/technology/dltk/downloads/drops/R0.95/R-0.95-200806230716/">DLTK 0.95 download page</a> or install as a part of <a href="http://www.eclipse.org/ganymede/">Ganymede</a>.</li>
-				<li><a href="http://www.eclipsecon.org/2008/?page=sub/&id=270">DLTK Tutorial</a> at EclipseCon 2008, March 17-20, Santa Clara, USA.</li>
-				<li>DLTK 0.9 released (June 29, 2007).</li>
-				<li><a href="http://www.eclipsecon.org/2007/index.php?page=sub/&id=3721">DLTK Talk</a> at EclipseCon 2007, March 5-8, Santa Clara, USA.</li>
-			</ul>
-		</div-->
-		<!--div class="homeitem3col">
-			<h3>Screencasts. EclipseCon 2007, DLTK Long Talk</h3>
-			<ul>
-				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-ruby.mov">Ruby IDE</a></li>
-				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-javascript.mov">experimental JavaScript IDE</a></li>
-				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-mylar.mov">Mylar Integration</a></li>
-				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-javascript-jdt.mov">JDT Integration</a></li>
-				<li>Eclipse DLTK <a href="http://media.xored.com/eclipsecon2007/dltk-tcl-debug.wmv">Tcl Debugger and Interactive Console</a></li>
-			</ul>
-		</div-->
-		<hr class="clearer" />
-	</div>
-	<? include("_rightColumn.php"); ?>
-</div>
-<?
-	$html = ob_get_contents();
-	ob_end_clean();
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
-?>
+header('Location: https://projects.eclipse.org/projects/technology.dltk', true, 301);
+die();
