diff --git a/downloads.php b/downloads.php
index cbf85f4..1d7689a 100644
--- a/downloads.php
+++ b/downloads.php
@@ -1,178 +1,178 @@
-<?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());    # All on the same line to unclutter the user's desktop'
-
-	#*****************************************************************************
-	#
-	# template.php
-	#
-	# Original Author: 		Nathan Gervais
-	# Date:			2007-12-05
-	#
-	# Description: DTP Downloads Page
-	#
-	#****************************************************************************	
-	#
-	# Begin: page-specific settings.  Change these. 
-	$pageTitle 		= "Eclipse Data Tools Platform (DTP) Project Downloads";
-	$pageKeywords	= "eclipse, data tools, dtp, datatools";
-	
-	ob_start();
-	?>
-	<style>
-		.homeitem3col p {
-			padding-left:10px;
-		}
-	</style>
-	<div id="midcolumn">
-		<h1><?=$pageTitle; ?></h1>
-
-		<div class="homeitem3col">
-			<h3>Current Release</h3>
-			<p>
-				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/" target="_blank">Eclipse 4.2.2 SDK</a>, 
-					      <a href="http://www.eclipse.org/modeling/emf/downloads/?project=emf" target="_blank">EMF 2.8.3 (EMF + XSD)</a>, 
-					      <a href="http://www.eclipse.org/gef/downloads/" target="_blank">GEF 3.8.2</a> and JDK 1.6</p>
-					      <p><i>Tested also with</i> Eclipse 4.4, EMF 2.10, GEF 3.9.100</p> 
-		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/directory_1.12.0.txt" target="_blank">Map files</a> used for 1.12.0 Release build.</p>  
-		      
-		 	<p><b>DTP 1.12.0 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
-		 	  
-		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp-sdk_1.12.0.zip" target="_blank">
-		 	  	  <b>DTP 1.12.0</b></a> (dtp-sdk_1.12.0.zip ~27MB)<br/>
-			  
-		      <br/><b>DTP 1.12.0 End User (No source or JavaDocs)</b><br/><br/>
-		          
-		        <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp_1.12.0.zip" target="_blank">
-		      	<b>DTP 1.12.0</b></a> (dtp_1.12.0.zip ~16MB)<br/>
-
-			  <br/><b>DTP 1.12.0 P2 Repo</b><br/><br/>
- 	            <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp-p2repo_1.12.0.zip" target="_blank">
- 	  	        <b>DTP 1.12.0</b></a> (dtp-p2repo_1.12.0.zip ~42MB)<br/><br/>
-		     
-		      <p><a href="http://download.eclipse.org/datatools/updates/1.12" target="_blank">DTP 1.12.x Update Site Repository</a> (http://download.eclipse.org/datatools/updates/1.12)</p>	
-		    </p>   
-		</div>
-
-		<div class="homeitem3col">
-			<h3>DTP 1.11.2</h3>
-			<p>
-				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.7.2 SDK</a>, 
-					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.7.2 (EMF + SDO)</a>, 
-					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.7.2</a> and JDK 1.6</p>
-					      <p><i>Tested also with</i> Eclipse 4.3, EMF 2.9, GEF 3.9</p> 
-		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/directory_1.11.2.txt" target="_blank">Map files</a> used for 1.11.2 Release build.</p>  
-		      
-		 	<p><b>DTP 1.11.2 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
-		 	  
-		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp-sdk_1.11.2.zip" target="_blank">
-		 	  	  <b>DTP 1.11.2</b></a> (dtp-sdk_1.11.2.zip ~26MB)<br/>
-			  
-		      <br/><b>DTP 1.11.2 End User (No source or JavaDocs)</b><br/><br/>
-		          
-		        <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp_1.11.2.zip" target="_blank">
-		      	<b>DTP 1.11.2</b></a> (dtp_1.11.2.zip ~16MB)<br/>
-
-			  <br/><b>DTP 1.11.2 P2 Repo</b><br/><br/>
- 	            <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp-p2repo_1.11.2.zip" target="_blank">
- 	  	        <b>DTP 1.11.2</b></a> (dtp-p2repo_1.11.2.zip ~42MB)<br/><br/>
-		     
-		      <p><a href="http://download.eclipse.org/datatools/updates/1.11" target="_blank">DTP 1.11.x Update Site Repository</a> (http://download.eclipse.org/datatools/updates/1.11)</p>	
-		    </p>   
-		</div>
-
-		<div class="homeitem3col">
-			<h3>DTP 1.10.2</h3>
-			<p>
-				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.7.2 SDK</a>, 
-					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.7.2 (EMF + SDO)</a>, 
-					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.7.2</a> and JDK 1.6</p>
-					      <p><i>Tested also with</i> Eclipse 4.2, EMF 2.8, GEF 3.8</p> 
-		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/directory_1.10.2.txt" target="_blank">Map files</a> used for 1.10.2 Release build.</p>  
-		      
-		 	<p><b>DTP 1.10.2 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
-		 	  
-		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/dtp-sdk_1.10.2.zip" target="_blank">
-		 	  	  <b>DTP 1.10.2</b></a> (dtp-sdk_1.10.2.zip ~41MB)<br/>
-			  
-		      <br/><b>DTP 1.10.2 End User (No source or JavaDocs)</b><br/><br/>
-		          
-		       <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/dtp_1.10.2.zip" target="_blank">
-		      	<b>DTP 1.10.2</b></a> (dtp_1.10.2.zip ~14MB)<br/><br/>
-		    </p>   
-		</div>
-
-		<div class="homeitem3col">
-			<h3>DTP 2 (formerly 1.12.1) Builds</h3>
-		
-			<p>
-			  <a href="http://download.eclipse.org/datatools/2.0.0.201511020902/repository/">2.0.0.201511020902</a>
-			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/2.0.0.201511020902/dtp-repository-2.0.0.201511020902.zip">Offline Repository</a>)
-            </p>
-            					  
-			<p>
-			  <a href="http://download.eclipse.org/datatools/2.0.0.201510232009/repository/">2.0.0.201510232009</a>
-			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/2.0.0.201510232009/dtp-repository-2.0.0.201510232009.zip">Offline Repository</a>)
-            </p>
-            					  
-			<p>
-			  <a href="http://download.eclipse.org/datatools/1.12.1.201510151656/repository/">1.12.1.201510151656</a>
-			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/1.12.1.201510151656/dtp-repository-1.12.1.201510151656.zip">Offline Repository</a>)
-            </p>
-            					  
-			<p>
-			  <a href="http://download.eclipse.org/datatools/1.12.1.201510141301/repository/">1.12.1.201510141301</a>
-			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/1.12.1.201510141301/dtp-repository-1.12.1.201510141301.zip">Offline Repository</a>)
-            </p>
-
-		</div>
-
-<!--
-			<div class="homeitem3col">
-				<h3>DTP 1.9.2 Incubating Component - ODA Ecore <img border="0" src="http://wiki.eclipse.org/images/0/04/DTP_Egg-incubation.png" width="46" height="60"></h3>
-				
-				<p>
-					<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.6.2 SDK</a>, 
-					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.6.1 (EMF + SDO)</a>, 
-					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.6.2</a> ,
-					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/emf/query/downloads/drops/1.4.0/R201006151000/emf-query-runtime-1.4.0.zip">emf-query-runtime-1.4.0</a>,
-					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/ocl/downloads/drops/3.0.1/R201009240345/mdt-ocl-runtime-3.0.1.zip">mdt-ocl-runtime-3.0.1</a>,
-					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/uml2/downloads/drops/3.1.1/R201009141451/mdt-uml2-runtime-3.1.1.zip">mdt-uml2-runtime-3.1.1</a> and JDK 1.5</p>
-					      
-					      
-						 <p><b>DTP Extender (SDK, Includes source and JavaDocs)</b><br/><br/>  	
-					 	   <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/dtp-incubator-sdk-1.9.2RC4-201202050500.zip" target="_blank">
- 	  	                      DTP Incubator 1.9.2RC4 SDK 2/5/12 Nightly Build</a> (dtp-incubator-sdk-1.9.2RC4-201202050500.zip ~110KB)<br/>
- 	  	                     
- 	                    <br/><b>DTP End-user (No source or JavaDocs)</b><br/><br/>
- 	                         <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/dtp-incubator-1.9.2RC4-201202050500.zip" target="_blank">
- 	  	                     DTP Incubator 1.9.2RC4 2/5/12 Nightly Build</a> (dtp-incubator-1.9.2RC4-201202050500.zip ~210KB)<br/></p>
- 	  	                     		  
- 	  	                <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/build.log" target="_blank">Build Log</a>(log of Nightly Build)</p>
- 	  	                
-				</p>
-			
-			</div>
--->
-			
-			<div class="homeitem3col">
-				<h3>DTP Update Site</h3>
-				  	<p>DTP releases can also be found on our <a href="http://download.eclipse.org/datatools/updates" target="_blank">update site</a> (http://download.eclipse.org/datatools/updates)</p>
-				  	<!--
-				  	<p>The DTP 1.8 <i>milestone</i> update site is <a href="http://download.eclipse.org/datatools/downloads/drops/N_updates_1.8" target="_blank">here</a> (http://download.eclipse.org/datatools/downloads/drops/N_updates_1.8).
-				  	Note that only the current 1.8 milestone build is maintained on this site: earlier milestones are deleted.</p>
-					-->
-			</div>
-			<div class="homeitem3col">
-				<h3>Previous Releases & Milestones</h3>
-					<p>A variety of previous releases and milestones can be found <a href="archived_downloads.php">here.</a></p>
-			</div>
-			<div class="homeitem3col">
-				<h3>DTP Repository</h3>
-			      <p> DTP project migrated our source code repository from Eclipse CVS to Git. For more information, please refer to <a href="http://wiki.eclipse.org/DTP_Source_Code_Repository">DTP_Source_Code_Repository</a></p>
-
-			</div>
-	</div>
-<?
-	$html = ob_get_clean();
-	# Generate the web page
-	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+<?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());    # All on the same line to unclutter the user's desktop'
+
+	#*****************************************************************************
+	#
+	# template.php
+	#
+	# Original Author: 		Nathan Gervais
+	# Date:			2007-12-05
+	#
+	# Description: DTP Downloads Page
+	#
+	#****************************************************************************	
+	#
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Eclipse Data Tools Platform (DTP) Project Downloads";
+	$pageKeywords	= "eclipse, data tools, dtp, datatools";
+	
+	ob_start();
+	?>
+	<style>
+		.homeitem3col p {
+			padding-left:10px;
+		}
+	</style>
+	<div id="midcolumn">
+		<h1><?=$pageTitle; ?></h1>
+
+		<div class="homeitem3col">
+			<h3>DTP 1.12.0</h3>
+			<p>
+				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/" target="_blank">Eclipse 4.2.2 SDK</a>, 
+					      <a href="http://www.eclipse.org/modeling/emf/downloads/?project=emf" target="_blank">EMF 2.8.3 (EMF + XSD)</a>, 
+					      <a href="http://www.eclipse.org/gef/downloads/" target="_blank">GEF 3.8.2</a> and JDK 1.6</p>
+					      <p><i>Tested also with</i> Eclipse 4.4, EMF 2.10, GEF 3.9.100</p> 
+		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/directory_1.12.0.txt" target="_blank">Map files</a> used for 1.12.0 Release build.</p>  
+		      
+		 	<p><b>DTP 1.12.0 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
+		 	  
+		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp-sdk_1.12.0.zip" target="_blank">
+		 	  	  <b>DTP 1.12.0</b></a> (dtp-sdk_1.12.0.zip ~27MB)<br/>
+			  
+		      <br/><b>DTP 1.12.0 End User (No source or JavaDocs)</b><br/><br/>
+		          
+		        <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp_1.12.0.zip" target="_blank">
+		      	<b>DTP 1.12.0</b></a> (dtp_1.12.0.zip ~16MB)<br/>
+
+			  <br/><b>DTP 1.12.0 P2 Repo</b><br/><br/>
+ 	            <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.12/dtp-p2repo_1.12.0.zip" target="_blank">
+ 	  	        <b>DTP 1.12.0</b></a> (dtp-p2repo_1.12.0.zip ~42MB)<br/><br/>
+		     
+		      <p><a href="http://download.eclipse.org/datatools/updates/1.12" target="_blank">DTP 1.12.x Update Site Repository</a> (http://download.eclipse.org/datatools/updates/1.12)</p>	
+		    </p>   
+		</div>
+
+		<div class="homeitem3col">
+			<h3>DTP 1.11.2</h3>
+			<p>
+				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.7.2 SDK</a>, 
+					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.7.2 (EMF + SDO)</a>, 
+					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.7.2</a> and JDK 1.6</p>
+					      <p><i>Tested also with</i> Eclipse 4.3, EMF 2.9, GEF 3.9</p> 
+		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/directory_1.11.2.txt" target="_blank">Map files</a> used for 1.11.2 Release build.</p>  
+		      
+		 	<p><b>DTP 1.11.2 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
+		 	  
+		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp-sdk_1.11.2.zip" target="_blank">
+		 	  	  <b>DTP 1.11.2</b></a> (dtp-sdk_1.11.2.zip ~26MB)<br/>
+			  
+		      <br/><b>DTP 1.11.2 End User (No source or JavaDocs)</b><br/><br/>
+		          
+		        <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp_1.11.2.zip" target="_blank">
+		      	<b>DTP 1.11.2</b></a> (dtp_1.11.2.zip ~16MB)<br/>
+
+			  <br/><b>DTP 1.11.2 P2 Repo</b><br/><br/>
+ 	            <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.11/dtp-p2repo_1.11.2.zip" target="_blank">
+ 	  	        <b>DTP 1.11.2</b></a> (dtp-p2repo_1.11.2.zip ~42MB)<br/><br/>
+		     
+		      <p><a href="http://download.eclipse.org/datatools/updates/1.11" target="_blank">DTP 1.11.x Update Site Repository</a> (http://download.eclipse.org/datatools/updates/1.11)</p>	
+		    </p>   
+		</div>
+
+		<div class="homeitem3col">
+			<h3>DTP 1.10.2</h3>
+			<p>
+				<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.7.2 SDK</a>, 
+					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.7.2 (EMF + SDO)</a>, 
+					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.7.2</a> and JDK 1.6</p>
+					      <p><i>Tested also with</i> Eclipse 4.2, EMF 2.8, GEF 3.8</p> 
+		    <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/directory_1.10.2.txt" target="_blank">Map files</a> used for 1.10.2 Release build.</p>  
+		      
+		 	<p><b>DTP 1.10.2 Extender SDK (Includes source and JavaDocs)</b><br/><br/>
+		 	  
+		 	    <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/dtp-sdk_1.10.2.zip" target="_blank">
+		 	  	  <b>DTP 1.10.2</b></a> (dtp-sdk_1.10.2.zip ~41MB)<br/>
+			  
+		      <br/><b>DTP 1.10.2 End User (No source or JavaDocs)</b><br/><br/>
+		          
+		       <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/1.10/dtp_1.10.2.zip" target="_blank">
+		      	<b>DTP 1.10.2</b></a> (dtp_1.10.2.zip ~14MB)<br/><br/>
+		    </p>   
+		</div>
+
+		<div class="homeitem3col">
+			<h3>DTP 2 (formerly 1.12.1) Builds</h3>
+		
+			<p>
+			  <a href="http://download.eclipse.org/datatools/2.0.0.201511020902/repository/">2.0.0.201511020902</a>
+			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/2.0.0.201511020902/dtp-repository-2.0.0.201511020902.zip">Offline Repository</a>)
+            </p>
+            					  
+			<p>
+			  <a href="http://download.eclipse.org/datatools/2.0.0.201510232009/repository/">2.0.0.201510232009</a>
+			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/2.0.0.201510232009/dtp-repository-2.0.0.201510232009.zip">Offline Repository</a>)
+            </p>
+            					  
+			<p>
+			  <a href="http://download.eclipse.org/datatools/1.12.1.201510151656/repository/">1.12.1.201510151656</a>
+			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/1.12.1.201510151656/dtp-repository-1.12.1.201510151656.zip">Offline Repository</a>)
+            </p>
+            					  
+			<p>
+			  <a href="http://download.eclipse.org/datatools/1.12.1.201510141301/repository/">1.12.1.201510141301</a>
+			  (<a href="https://www.eclipse.org/downloads/download.php?file=/datatools/1.12.1.201510141301/dtp-repository-1.12.1.201510141301.zip">Offline Repository</a>)
+            </p>
+
+		</div>
+
+<!--
+			<div class="homeitem3col">
+				<h3>DTP 1.9.2 Incubating Component - ODA Ecore <img border="0" src="http://wiki.eclipse.org/images/0/04/DTP_Egg-incubation.png" width="46" height="60"></h3>
+				
+				<p>
+					<i>Requirements:</i> <a href="http://download.eclipse.org/eclipse/downloads/index.php" target="_blank">Eclipse 3.6.2 SDK</a>, 
+					      <a href="http://www.eclipse.org/modeling/" target="_blank">EMF 2.6.1 (EMF + SDO)</a>, 
+					      <a href="http://download.eclipse.org/tools/gef/downloads/" target="_blank">GEF 3.6.2</a> ,
+					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/emf/query/downloads/drops/1.4.0/R201006151000/emf-query-runtime-1.4.0.zip">emf-query-runtime-1.4.0</a>,
+					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/ocl/downloads/drops/3.0.1/R201009240345/mdt-ocl-runtime-3.0.1.zip">mdt-ocl-runtime-3.0.1</a>,
+					      <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/uml2/downloads/drops/3.1.1/R201009141451/mdt-uml2-runtime-3.1.1.zip">mdt-uml2-runtime-3.1.1</a> and JDK 1.5</p>
+					      
+					      
+						 <p><b>DTP Extender (SDK, Includes source and JavaDocs)</b><br/><br/>  	
+					 	   <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/dtp-incubator-sdk-1.9.2RC4-201202050500.zip" target="_blank">
+ 	  	                      DTP Incubator 1.9.2RC4 SDK 2/5/12 Nightly Build</a> (dtp-incubator-sdk-1.9.2RC4-201202050500.zip ~110KB)<br/>
+ 	  	                     
+ 	                    <br/><b>DTP End-user (No source or JavaDocs)</b><br/><br/>
+ 	                         <a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/dtp-incubator-1.9.2RC4-201202050500.zip" target="_blank">
+ 	  	                     DTP Incubator 1.9.2RC4 2/5/12 Nightly Build</a> (dtp-incubator-1.9.2RC4-201202050500.zip ~210KB)<br/></p>
+ 	  	                     		  
+ 	  	                <p><a href="http://www.eclipse.org/downloads/download.php?file=/datatools/downloads/drops/N_DTP_1.9.2/build.log" target="_blank">Build Log</a>(log of Nightly Build)</p>
+ 	  	                
+				</p>
+			
+			</div>
+-->
+			
+			<div class="homeitem3col">
+				<h3>DTP Update Site</h3>
+				  	<p>DTP releases can also be found on our <a href="http://download.eclipse.org/datatools/updates" target="_blank">update site</a> (http://download.eclipse.org/datatools/updates)</p>
+				  	<!--
+				  	<p>The DTP 1.8 <i>milestone</i> update site is <a href="http://download.eclipse.org/datatools/downloads/drops/N_updates_1.8" target="_blank">here</a> (http://download.eclipse.org/datatools/downloads/drops/N_updates_1.8).
+				  	Note that only the current 1.8 milestone build is maintained on this site: earlier milestones are deleted.</p>
+					-->
+			</div>
+			<div class="homeitem3col">
+				<h3>Previous Releases & Milestones</h3>
+					<p>A variety of previous releases and milestones can be found <a href="archived_downloads.php">here.</a></p>
+			</div>
+			<div class="homeitem3col">
+				<h3>DTP Repository</h3>
+			      <p> DTP project migrated our source code repository from Eclipse CVS to Git. For more information, please refer to <a href="http://wiki.eclipse.org/DTP_Source_Code_Repository">DTP_Source_Code_Repository</a></p>
+
+			</div>
+	</div>
+<?
+	$html = ob_get_clean();
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
 ?>
