diff --git a/Android.mk b/Android.mk
index 954d0a9..5d6a2b1 100644
--- a/Android.mk
+++ b/Android.mk
@@ -708,6 +708,33 @@
 # explicitly specify that ds depends on framework-res and any generated docs
 $(full_target): framework-res-package-target
 
+
+#==== reference docs for GCM =======================
+
+include $(CLEAR_VARS)
+#
+gcm_docs_src_files += \
+        $(call all-java-files-under, ../../vendor/unbundled_google/libs/gcm/gcm-client/src) \
+        $(call all-java-files-under, ../../vendor/unbundled_google/libs/gcm/gcm-server/src) \
+        $(call all-html-files-under, ../../vendor/unbundled_google/libs/gcm/gcm-client/src) \
+        $(call all-html-files-under, ../../vendor/unbundled_google/libs/gcm/gcm-server/src) \
+
+LOCAL_SRC_FILES := $(gcm_docs_src_files)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= online-gcm-ref
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_IS_HOST_MODULE := false
+
+LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := build/tools/droiddoc/templates-sdk
+
+LOCAL_DROIDDOC_OPTIONS := \
+        -toroot / \
+        -gcmref \
+        -hdf android.whichdoc online \
+        -hdf template.showLanguageMenu true
+
+include $(BUILD_DROIDDOC)
+
 # ==== docs that have all of the stuff that's @hidden =======================
 include $(CLEAR_VARS)
 
diff --git a/core/java/android/widget/Scroller.java b/core/java/android/widget/Scroller.java
index 3a28e75e..3bfd39d 100644
--- a/core/java/android/widget/Scroller.java
+++ b/core/java/android/widget/Scroller.java
@@ -26,11 +26,39 @@
 
 
 /**
- * This class encapsulates scrolling.  The duration of the scroll
- * can be passed in the constructor and specifies the maximum time that
- * the scrolling animation should take.  Past this time, the scrolling is 
- * automatically moved to its final stage and computeScrollOffset()
- * will always return false to indicate that scrolling is over.
+ * <p>This class encapsulates scrolling. You can use scrollers ({@link Scroller}
+ * or {@link OverScroller}) to collect the data you need to produce a scrolling
+ * animation&mdash;for example, in response to a fling gesture. Scrollers track
+ * scroll offsets for you over time, but they don't automatically apply those
+ * positions to your view. It's your responsibility to get and apply new
+ * coordinates at a rate that will make the scrolling animation look smooth.</p>
+ *
+ * <p>Here is a simple example:</p>
+ *
+ * <pre> private Scroller mScroller = new Scroller(context);
+ * ...
+ * public void zoomIn() {
+ *     // Revert any animation currently in progress
+ *     mScroller.forceFinished(true);
+ *     // Start scrolling by providing a starting point and
+ *     // the distance to travel
+ *     mScroller.startScroll(0, 0, 100, 0);
+ *     // Invalidate to request a redraw
+ *     invalidate();
+ * }</pre>
+ *
+ * <p>To track the changing positions of the x/y coordinates, use
+ * {@link #computeScrollOffset}. The method returns a boolean to indicate
+ * whether the scroller is finished. If it isn't, it means that a fling or
+ * programmatic pan operation is still in progress. You can use this method to
+ * find the current offsets of the x and y coordinates, for example:</p>
+ *
+ * <pre>if (mScroller.computeScrollOffset()) {
+ *     // Get current x and y positions
+ *     int currX = mScroller.getCurrX();
+ *     int currY = mScroller.getCurrY();
+ *    ...
+ * }</pre>
  */
 public class Scroller  {
     private int mMode;
@@ -272,8 +300,7 @@
 
     /**
      * Call this when you want to know the new location.  If it returns true,
-     * the animation is not yet finished.  loc will be altered to provide the
-     * new location.
+     * the animation is not yet finished.
      */ 
     public boolean computeScrollOffset() {
         if (mFinished) {
@@ -355,7 +382,8 @@
     }
 
     /**
-     * Start scrolling by providing a starting point and the distance to travel.
+     * Start scrolling by providing a starting point, the distance to travel,
+     * and the duration of the scroll.
      * 
      * @param startX Starting horizontal scroll offset in pixels. Positive
      *        numbers will scroll the content to the left.
