diff --git a/changes.txt b/changes.txt
index 14572c0..710632c 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,7 +1,58 @@
 Change log for Android SDK Tools.
 
 Revision 17:
-* New lint rules which analyze Java source and class files.
+* Bug fixes.
+* ProGuard updated to version 4.7. In addition to many new features,
+  this will fix the "Conversion to Dalvik format failed with error 1"
+  error some users have experienced.
+* The default proguard.cfg file has been updated with better
+  flags.
+* Lint now checks Java code, and checks which previously performed
+  pattern based searches in the Java code (such as the unused resource
+  check) have been rewritten to use the more accurate Java parse
+  trees.
+* Lint supports library projects, so for example the unused resource
+  check will properly handle resources declared in a library project
+  and referenced in a downstream project.
+* New lint checks:
+  * Find hardcoded android:debuggable attributes on <application>
+    elements. This can lead to accidentally leaving debug information
+    in published applications.
+  * Find errors in format strings. This includes inconsistencies
+    between translated versions, as well as incompatible types
+    declared in XML and supplied in the String.format call in Java.
+  * Find incorrect casts in Java code where the cast is incompatible
+    with the view type declared in XML layouts.
+  * Find hardcoded references to "/sdcard" in Java code; these should
+    be using Environment.getExternalStorageDirectory().getPath()
+    instead
+  * Find "import android.R" statements in Java code, which can lead to
+    confusing compilation error messages
+  * Find Java code which creates world-writeable files (which can lead
+    to security problems)
+  * Find references to private resources (which can lead to runtime
+    errors on devices that do not provide the resource, since private
+    resources may disappear any time, and may not be present on all
+    platforms.)
+  * Find invalid @id references (where for example a RelativeLayout
+    references an id that does not exist anywhere). If no match is
+    found, it looks for spelling mistakes and suggests other similar
+    ids in the error message.
+  * Finds method calls to java.lang.Math where a float variable is
+    cast to a double and/or the return value is cast to a float, and
+    suggests replacing it with the equivalent android.util.FloatMath
+    method.
+  * Finds calls to a getter on the same class where a field could be
+    accessed instead.
+  * Find XML files using a different encoding format than UTF-8, since
+    this can lead to subtle bugs (and lint was fixed to properly use
+    the specified encoding)
+  * Find XML resource files that contain text which should not be
+    there (such as in layouts). This can identify accidentally
+    malformed documents which happen to be valid XML, such as a
+    missing "<" tag opening character.
+  * Find style references which lead to cycles, such as extending
+    self.
 
 Revision 16:
 * New "lint" tool which scans Android project trees for potential
diff --git a/eclipse/changes.txt b/eclipse/changes.txt
index 7fbed5b..12bbd2f 100644
--- a/eclipse/changes.txt
+++ b/eclipse/changes.txt
@@ -1,3 +1,47 @@
+17.0.0:
+* ADT 17 requires Java 6 and Eclipse 3.6.2.
+* Improved Lint UI.
+   * Many new lint checks: See the tools changes.txt for details.
+   * New "Run Lint" toolbar action with a dropdown menu for selecting
+     specific (or all) projects, clearing results, etc.
+   * The results window is now organized as a tree rather than a flat
+     list. Each issue type has a single top level item, which makes it
+     easier to quickly scan through the reported issues and narrow
+     down to issues you are most interested in.
+   * The results window contains many new toolbar actions, including
+     expand/collapse, ignore in file, ignore in project, ignore
+     everywhere, show options, and configure columns.
+   * There are new columns available, such as category, priority,
+     project, file and line. The column selection (as well as the
+     column sizes) are persisted. You can click on columns to sort by
+     that column.
+   * The Lint Options dialog has Enable All and Disable All buttons,
+     and a search filter textbox to filter by issue id, summary and
+     severity.
+* New Quick Outline for XML editors (Ctrl-O, Command-O). This shows
+  the structure of the current file including icons and ids, and lets
+  you filter and quickly jump to specific ids.
+* The resource chooser now shows the resolved value for resources
+  (e.g. when selecting @string/hello it displays that the resolved value
+  is "Hello World"). It also allows editing the chosen value directly.
+* The layout editor no longer assigns default ids to layouts, includes
+  and merge tags. This tended to pollute the namespace with a lot of
+  unused resources since layouts aren't usually manipulated via code,
+  or referenced from XML. (The RelativeLayout editor automatically
+  assigns ids to views without ids when pointing to them.)
+* Layout editor fix for SlidingDrawer which on some platforms could
+  not be dragged into the layout. Also fix preview rendering for
+  SlidingDrawer and TabHost (issue 23022).
+* New default application icons, including an xhdpi version.
+* Important bug fixes:
+  * Fix bug in resource chooser which made some types of framework
+    resources impossible to select (issue 20589)
+  * Fix a bug in the formatter where a certain whitespace pattern
+    could result in a non-space character getting deleted (issue
+    23940)
+  * Fix locale bug affecting Turkish locales in particular (issue
+    23747)
+
 16.0.0:
 * New "lint" feature which scans the Android projects for potential
   problems such as missing translations, duplicate ids between layouts
