diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
index 29dceec..5dd2d95 100644
--- a/docs/html/sdk/android-1.6.jd
+++ b/docs/html/sdk/android-1.6.jd
@@ -11,7 +11,7 @@
 
 <ul>
 <li><a href="#overview">Overview</a>
-<li><a href="#features">New Features</a>
+<li><a href="#features">Release Highlights</a>
 <li><a href="#apps">Built-in Applications</a>
 <li><a href="#locs">Locales</a>
 <li><a href="#api-changes">API Changes</a>
@@ -20,9 +20,9 @@
 <h2 id="overview">Overview</h2>
 
 <p>The Android 1.6 system delivered in the SDK (as library and system image) is
-the development counterpart to the Android 1.6 production system image,
-deployable to Android-powered handsets starting September 2009. The system is fully
-compliant and includes no external libraries.</p>
+the development counterpart to the Android 1.6 production system image, which is
+deployable to Android-powered handsets starting October 2009. The system is
+fully compliant and includes no external libraries. </p>
 
 <p>The Android 1.6 system delivers an updated version of the framework
 API. As with previous versions, the Android 1.6 API 
@@ -32,11 +32,11 @@
 the system, prior to installing the application. </p>
 
 <p>For more information about how to use API Level, see the <a
-href="{@docRoot}guide/developing/">API Levels</a> document. </p>
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
 
-<h2 id="features">New Features</h2>
+<h2 id="features">Highlights</h2>
 
-<p>For a list of new system features, see the <a
+<p>For a list of new user features and platform highlights, see the <a
 href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform
 Highlights</a> document.</p>
 
@@ -139,22 +139,45 @@
 </tr>
 </table>
 
-<p>Localized UI strings match the locales that are displayable in 
-the emulator, accessible through the device Settings application.</p>
+<p>Localized UI strings match the locales that are accessible 
+through Settings.</p>
 
 <h2 id="api-changes">API Changes</h2>
 
-<h3 style="padding-top:0">Overview</h3>
+<h4 id="UIFramework">UI framework</h4>
+    <ul>
+      <li>New classes in {@link android.view.animation}
+      to control the behavior of animations:
+        <ul>
+          <li><code>AnticipateInterpolator</code></li>
+          <li><code>AnticipateOvershootInterpolator</code></li>
+          <li><code>BounceInterpolator</code></li>
+          <li><code>OvershootInterpolator</code></li>
+        </ul>
+      </li>
+      <li>New XML attribute <code>android:onClick</code> to specify a View's 
+<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 
+from a layout file.
+      </li>
+      <li>New support for dealing with varying screen densities. Density
+information is associated with Bitmap and Canvas for performing the
+correct scaling. The framework will automatically scale bitmaps and
+nine-patches based on the density the resource was found under and the
+density of the screen, etc.
+      </li>
+    </ul>
 
-<ul>
-
-<li>Search framework</li>
+<h4>Search framework</h4>
   <ul>
-    <li>Applications can now expose relevant content to users as search suggestions in the Quick Search Box, a new device-wide search capability that is accessible from the home screen. To support this, the search framework adds new attributes to the searchable metadata file. For complete information, see the {@link android.app.SearchManager SearchManager} documentation.</li>
+    <li>Applications can now expose relevant content to users as search
+suggestions in the Quick Search Box, a new device-wide search capability that is
+accessible from the home screen. To support this, the search framework adds new
+attributes to the searchable metadata file. For complete information, see the
+{@link android.app.SearchManager SearchManager} documentation.
+    </li>
   </ul>
-</li>
 
-<li>Accessibility framework</li>
+<h4>Accessibility framework</h4>
   <ul>
     <li>New {@link android.view.accessibility android.accessibility} package
 that includes classes for capturing accessibility events and forwarding them to
@@ -163,73 +186,139 @@
 that lets your application track user events and provide visual, audible, or
 haptic feedback to the user. </li>
   </ul>
-</li>
 
-<li>Gestures</li>
+<h4>Gesture Input</h4>
   <ul>
     <li>New {@link android.gesture gesture} API for creating, recognizing,
 loading, and saving gestures.</li>
   </ul>
-</li>
 
-<li>Text-to-speech</li>
+<h4>Text-to-speech</h4>
   <ul>
-    <li>New package {@link android.speech.tts android.speech.tts} provides
+    <li>New {@link android.speech.tts android.speech.tts} package provides
 classes for synthesizing speech from text, for immediate playback or to create a
 sound file.</li>
   </ul>
-</li>
 
-<li>Permissions</li>
-  <ul>
-
-    <li>New permissions for 
-{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_MULTICAST_STATE}, 
-{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}, 
-{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS},
-{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}, and  
-{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}.</li>
-  </ul>
-</li>
-
-<li>Graphics</li>
+<h4>Graphics</h4>
   <ul>
     <li>Classes in {@link android.graphics android.graphics} now support scaling
 for different screen densities.</li>
   </ul>
-</li>
 
-<li>Telephony</li>
+<h4>Telephony</h4>
   <ul>
     <li>New {@link android.telephony.SmsManager SmsManager} and other classes
 for sending and receiving SMS messages.</li>
   </ul>
-</li>
 
-<li>Utilities</li>
+<h4>Utilities</h4>
   <ul>
     <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
 determining the density of the current device screen.</li>
   </ul>
-</li>
 
-<li>Application-defined support for various screen densities</li>
-   <p>Applications can now use a new element in their manifest files, <a
-href="{@docRoot}guide/topics/manifest/supports-screen-element.html">&lt;supports-
-screen&gt;</a> to indicate to the specific screen resolutions/densities that
-they are designed to support. When the application is installed on a device
-whose screen is not explicitly supported by the application, the system
-runs the application in Compatibility Mode, where possible. </p>
-</li>
-</ul>
+<h4 id="AndroidManifest">Android Manifest elements</h4>
+
+    <ul>
+      <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code 
+      &lt;supports-screens>}</a> element lets you specify the device screen sizes that your 
+      application is designed and tested to support, where "size" is a combination
+      of resolution and density. If your application is run on a device whose screen 
+      size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system 
+      displays the application in <em>compatibility mode</em>, which performs best-effort scaling
+      of the application UI to match the resolution and density of the screen. 
+
+    <p>The attributes available for defining an application's screen support are:
+
+        <ul>
+
+          <li><code>smallScreen</code>: Boolean value that indicates whether the
+            application is designed to run on devices with small screens. 
+            Examples: QVGA low density; VGA high density.
+          </li>
+          <li><code>normalScreens</code>: Boolean value that indicates whether 
+            the application is designed to run on devices with normal screens. 
+            Examples: WQVGA low density; HVGA medium density; WVGA high density.
+          </li>
+          <li><code>largeScreens</code>: Boolean value that indicates whether 
+            the application is designed to run on devices with significantly 
+            larger screens, such that special care may be required on
+            the application's part to make proper use of the screen area. 
+            Examples: VGA medium density; WVGA medium density.
+          </li>
+          <li><code>anyDensity</code>: Boolean value that indicates whether 
+            the application can accommodate any screen density.
+          </li>
+          <li><code>resizable</code>: Boolean value that indicates whether
+            the application can expand its layout to fit slightly larger screens.
+          </li>
+        </ul>
+    </p>
+    </li>
+
+      <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
+        element lets an application specify hardware (or other)
+        features that it requires to function normally. When an application
+        specifies such features, the system allows the application to be installed only
+        on devices that offer the required features. The element supports these
+        attributes:
+        <ul>
+          <li><code>name</code>: The name of the feature required by the application. Currently accepts 
+          "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a 
+          camera and camera autofocus are required, respectively.</li>
+          <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li>
+        </ul>
+      </li>
+      <li>New attributes for the 
+      <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code &lt;uses-sdk>}</a> element:
+        <ul>
+          <li><code>maxSdkVersion</code>: This indicates the maximum API Level on which an application is 
+          designed to run. If an application declares this attribute, the Android system prevents the user 
+          from installing the application if the system's API Level is higher than the value specified in 
+          this attribute. </li>
+          <li><code>targetSdkVersion</code>: This indicates the API Level that the application is targeting. 
+          It is able to run on older versions (down to minSdkVersion), but was explicitly tested to 
+          work with the version specified here. Specifying this version allows the platform to 
+          disable compatibility code that is not required or enable newer features that are not 
+          available to older applications. </li>
+        </ul>
+      </li>
+
+      </li>
+    </ul>
+
+<h4>New Permissions</h4>
+
+    <ul>
+      <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE
+          CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi 
+          Multicast mode.
+      </li>
+      <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the 
+          global search system to access the data of a specified content provider.
+      </li> 
+      <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: 
+          Allows an application to install a location provider into the Location Manager.
+      </li>
+      <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: 
+          Allows an application to read (but not write) the user's browsing history 
+          and bookmarks.
+      </li>
+      <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: 
+          Allows an application to write (but not read) the user's browsing history 
+          and bookmarks.
+      </li>
+      <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: 
+          Allows an application to write to external storage. Applications using API Level 3
+          and lower will be implicitly granted this permission (and this will be visible to 
+          the user); Applications using API Level 4 or higher must explicitly request this 
+          permission.
+      </li>
+    </ul>
+
 
 <h3 id="api-diff">API Change Details</h3>
 
-<p>For a detailed view of API changes in this platform (API Level 4), see the <a
+<p>For a detailed view of API changes in Android 1.6 (API Level 4), see the <a
 href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p>
-
-
-
-
-
-
