diff --git a/docs/html/guide/developing/device.jd b/docs/html/guide/developing/device.jd
index d22dca1..d91551a 100644
--- a/docs/html/guide/developing/device.jd
+++ b/docs/html/guide/developing/device.jd
@@ -134,11 +134,11 @@
   </tr>
   <tr>
     <td>ASUS</td>
-    <td><code>0B05</code></td>
+    <td><code>0b05</code></td>
   </tr>
   <tr>
     <td>Dell</td>
-    <td><code>413C</code></td>
+    <td><code>413c</code></td>
   </tr>
   <tr>
     <td>Foxconn</td>
@@ -146,35 +146,35 @@
   </tr>
   <tr>
     <td>Fujitsu</td>
-    <td><code>04C5</code></td>
+    <td><code>04c5</code></td>
   </tr>
   <tr>
     <td>Fujitsu Toshiba</td>
-    <td><code>04C5</code></td>
+    <td><code>04c5</code></td>
   </tr>
   <tr>
     <td>Garmin-Asus</td>
-    <td><code>091E</code></td>
+    <td><code>091e</code></td>
   </tr>
   <tr>
     <td>Google</td>
-    <td><code>18D1</code></td>
+    <td><code>18d1</code></td>
   </tr>
   <tr>
     <td>Hisense</td>
-    <td><code>109B</code></td>
+    <td><code>109b</code></td>
   </tr>
   <tr>
     <td>HTC</td>
-    <td><code>0BB4</code></td>
+    <td><code>0bb4</code></td>
   </tr>
   <tr>
     <td>Huawei</td>
-    <td><code>12D1</code></td>
+    <td><code>12d1</code></td>
   </tr>
   <tr>
     <td>K-Touch</td>
-    <td><code>24E3</code></td>
+    <td><code>24e3</code></td>
   </tr>
   <tr>
     <td>KT Tech</td>
@@ -185,8 +185,8 @@
     <td><code>0482</code></td>
   </tr>
   <tr>
-    <td>Lenevo</td>
-    <td><code>17EF</code></td>
+    <td>Lenovo</td>
+    <td><code>17ef</code></td>
   </tr>
   <tr>
     <td>LG</td>
@@ -194,7 +194,7 @@
   </tr>
   <tr>
     <td>Motorola</td>
-    <td><code>22B8</code></td>
+    <td><code>22b8</code></td>
   </tr>
   <tr>
     <td>NEC</td>
@@ -214,11 +214,11 @@
   </tr>
   <tr>
     <td>Pantech</td>
-    <td><code>10A9</code></td>
+    <td><code>10a9</code></td>
   </tr>
   <tr>
     <td>Pegatron</td>
-    <td><code>1D4D</code></td>
+    <td><code>1d4d</code></td>
   </tr>
   <tr>
     <td>Philips</td>
@@ -226,31 +226,31 @@
   </tr>
   <tr>
     <td>PMC-Sierra</td>
-    <td><code>04DA</code></td>
+    <td><code>04da</code></td>
   </tr>
   <tr>
     <td>Qualcomm</td>
-    <td><code>05C6</code></td>
+    <td><code>05c6</code></td>
   </tr>
   <tr>
     <td>SK Telesys</td>
-    <td><code>1F53</code></td>
+    <td><code>1f53</code></td>
   </tr>
   <tr>
     <td>Samsung</td>
-    <td><code>04E8</code></td>
+    <td><code>04e8</code></td>
   </tr>
   <tr>
     <td>Sharp</td>
-    <td><code>04DD</code></td>
+    <td><code>04dd</code></td>
   </tr>
   <tr>
     <td>Sony</td>
-    <td><code>054C</code></td>
+    <td><code>054c</code></td>
   </tr>
   <tr>
     <td>Sony Ericsson</td>
-    <td><code>0FCE</code></td>
+    <td><code>0fce</code></td>
   </tr>
   <tr>
     <td>Teleepoch</td>
@@ -262,6 +262,6 @@
   </tr>
   <tr>
     <td>ZTE</td>
-    <td><code>19D2</code></td>
+    <td><code>19d2</code></td>
   </tr>
 </table>
diff --git a/docs/html/guide/developing/tools/monkeyrunner_concepts.jd b/docs/html/guide/developing/tools/monkeyrunner_concepts.jd
index 499b610..346a0c6 100644
--- a/docs/html/guide/developing/tools/monkeyrunner_concepts.jd
+++ b/docs/html/guide/developing/tools/monkeyrunner_concepts.jd
@@ -236,7 +236,7 @@
     You can generate an API reference for monkeyrunner by running:
 </p>
 <pre>
-monkeyrunner &lt;format&gt; help.py &lt;outfile&gt;
+monkeyrunner help.py &lt;format&gt; &lt;outfile&gt;
 </pre>
 <p>
 The arguments are:
diff --git a/docs/html/guide/market/expansion-files.jd b/docs/html/guide/market/expansion-files.jd
index 01acb33..36b8f9c 100644
--- a/docs/html/guide/market/expansion-files.jd
+++ b/docs/html/guide/market/expansion-files.jd
@@ -1088,12 +1088,8 @@
     <dd>Most applications don't need to use this class. This class defines a {@link
 android.content.ContentProvider} that marshals the data from the ZIP files through a content
 provider {@link android.net.Uri} in order to provide file access for certain Android APIs that
-expect {@link android.net.Uri} access to media files.
-      <p>The sample application available in the
-Apk Expansion package demonstrates a scenario in which this class is useful
-to specify a video with {@link android.widget.VideoView#setVideoURI
-VideoView.setVideoURI()}. See the sample app's class {@code SampleZipfileProvider} for an
-example of how to extend this class to use in your application.</p></dd>
+expect {@link android.net.Uri} access to media files. For example, this is useful if you want to
+play a video with {@link android.widget.VideoView#setVideoURI VideoView.setVideoURI()}.</p></dd>
 </dl>
 
 <h4>Reading from a ZIP file</h4>
diff --git a/docs/html/guide/topics/fundamentals/tasks-and-back-stack.jd b/docs/html/guide/topics/fundamentals/tasks-and-back-stack.jd
index 465cf54..0880614 100644
--- a/docs/html/guide/topics/fundamentals/tasks-and-back-stack.jd
+++ b/docs/html/guide/topics/fundamentals/tasks-and-back-stack.jd
@@ -154,7 +154,7 @@
 
 <p>Because the activities in the back stack are never rearranged, if your application allows
 users to start a particular activity from more than one activity, a new instance of
-that activity is created and popped onto the stack (rather than bringing any previous instance of
+that activity is created and pushed onto the stack (rather than bringing any previous instance of
 the activity to the top). As such, one activity in your application might be instantiated multiple
 times (even from different tasks), as shown in figure 3. As such, if the user navigates backward
 using the <em>Back</em> button, each instance of the activity is revealed in the order they were
@@ -291,7 +291,7 @@
 should associate with a task, then Activity A's request (as defined in the intent) is honored
 over Activity B's request (as defined in its manifest).</p>
 
-<p class="note"><strong>Note:</strong> Some the launch modes available in the manifest
+<p class="note"><strong>Note:</strong> Some launch modes available for the manifest file
 are not available as flags for an intent and, likewise, some launch modes available as flags
 for an intent cannot be defined in the manifest.</p>
 
diff --git a/docs/html/guide/topics/manifest/manifest-element.jd b/docs/html/guide/topics/manifest/manifest-element.jd
index 9788945..98968d7 100644
--- a/docs/html/guide/topics/manifest/manifest-element.jd
+++ b/docs/html/guide/topics/manifest/manifest-element.jd
@@ -37,7 +37,7 @@
 <dt>description:</dt>
 <dd>The root element of the AndroidManifest.xml file.  It must 
 contain an <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element 
-and specify {@code xlmns:android} and {@code package} attributes.</dd>
+and specify {@code xmlns:android} and {@code package} attributes.</dd>
 
 <dt>attributes:</dt>
 <dd>
diff --git a/docs/html/guide/topics/providers/content-provider-basics.jd b/docs/html/guide/topics/providers/content-provider-basics.jd
index 40b5c3f..de89568 100644
--- a/docs/html/guide/topics/providers/content-provider-basics.jd
+++ b/docs/html/guide/topics/providers/content-provider-basics.jd
@@ -123,7 +123,7 @@
 
     <!-- Intro paragraphs -->
 <p>
-    A content provider manages access to a central repository of data. The provider and
+    A content provider manages access to a central repository of data. A provider
     is part of an Android application, which often provides its own UI for working with
     the data. However, content providers are primarily intended to be used by other
     applications, which access the provider using a provider client object. Together, providers
@@ -569,7 +569,7 @@
 </pre>
 <p>
     A selection clause that uses <code>?</code> as a replaceable parameter and an array of
-    selection arguments array are preferred way to specify a selection, even the provider isn't
+    selection arguments array are preferred way to specify a selection, even if the provider isn't
     based on an SQL database.
 </p>
 <!-- Displaying the results -->
diff --git a/docs/html/guide/topics/resources/providing-resources.jd b/docs/html/guide/topics/resources/providing-resources.jd
index 380791a..b33a097 100644
--- a/docs/html/guide/topics/resources/providing-resources.jd
+++ b/docs/html/guide/topics/resources/providing-resources.jd
@@ -287,9 +287,8 @@
         from the SIM card in the device. For example, <code>mcc310</code> is U.S. on any carrier,
         <code>mcc310-mnc004</code> is U.S. on Verizon, and <code>mcc208-mnc00</code> is France on
         Orange.</p>
-        <p>If the device uses a radio connection (GSM phone), the MCC comes
-        from the SIM, and the MNC comes from the network to which the
-        device is connected.</p>
+        <p>If the device uses a radio connection (GSM phone), the MCC and MNC values come
+        from the SIM card.</p>
         <p>You can also use the MCC alone (for example, to include country-specific legal
 resources in your application). If you need to specify based on the language only, then use the
 <em>language and region</em> qualifier instead (discussed next). If you decide to use the MCC and
diff --git a/docs/html/guide/topics/resources/string-resource.jd b/docs/html/guide/topics/resources/string-resource.jd
index ecd2d48..5f5484e 100644
--- a/docs/html/guide/topics/resources/string-resource.jd
+++ b/docs/html/guide/topics/resources/string-resource.jd
@@ -358,11 +358,14 @@
 <pre>
 int count = getNumberOfsongsAvailable();
 Resources res = {@link android.content.Context#getResources()};
-String songsFound = res.{@link android.content.res.Resources#getQuantityString(int,int)
-getQuantityString}(R.plurals.numberOfSongsAvailable, count, count);
+String songsFound = res.<a
+href="{@docRoot}reference/android/content/res/Resources.html#getQuantityString(int, int, java.lang.Object...)"
+>getQuantityString</a>(R.plurals.numberOfSongsAvailable, count, count);
 </pre>
-<p>When using the {@link android.content.res.Resources#getQuantityString(int,int)
-getQuantityString()} method, you need to pass the {@code count} twice if your string includes
+
+<p>When using the <a
+href="{@docRoot}reference/android/content/res/Resources.html#getQuantityString(int, int, java.lang.Object...)">{@code
+getQuantityString()}</a> method, you need to pass the {@code count} twice if your string includes
 <a href="#FormattingAndStyling">string formatting</a> with a number. For example, for the string
 {@code %d songs found}, the first {@code count} parameter selects the appropriate plural string and
 the second {@code count} parameter is inserted into the {@code %d} placeholder. If your plural
diff --git a/docs/html/guide/topics/sensors/index.jd b/docs/html/guide/topics/sensors/index.jd
index 75a1716..43903dc 100644
--- a/docs/html/guide/topics/sensors/index.jd
+++ b/docs/html/guide/topics/sensors/index.jd
@@ -43,7 +43,7 @@
 application might use the geomagnetic field sensor and accelerometer to report a compass
 bearing.</p>
 
-<p>The Android platform supports four broad categories of sensors:</p>
+<p>The Android platform supports three broad categories of sensors:</p>
 
 <ul>
   <li>Motion sensors
diff --git a/docs/html/guide/topics/ui/layout-objects.jd b/docs/html/guide/topics/ui/layout-objects.jd
index 8b2792d..e251fe9 100644
--- a/docs/html/guide/topics/ui/layout-objects.jd
+++ b/docs/html/guide/topics/ui/layout-objects.jd
@@ -163,7 +163,7 @@
         <td>
         <pre>
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
-&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android
+&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android"
                 android:layout_width=&quot;fill_parent&quot; 
                 android:layout_height=&quot;wrap_content&quot;
                 android:background=&quot;@drawable/blue&quot;
diff --git a/docs/html/guide/topics/wireless/wifip2p.jd b/docs/html/guide/topics/wireless/wifip2p.jd
index 4dd3d26..ec8e71e 100644
--- a/docs/html/guide/topics/wireless/wifip2p.jd
+++ b/docs/html/guide/topics/wireless/wifip2p.jd
@@ -333,7 +333,7 @@
     ...
     mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
     mChannel = mManager.initialize(this, getMainLooper(), null);
-    Receiver = new WiFiDirectBroadcastReceiver(manager, channel, this);
+    mReceiver = new WiFiDirectBroadcastReceiver(manager, channel, this);
     ...
 }
 </pre>
@@ -364,13 +364,13 @@
 &#064;Override
 protected void onResume() {
     super.onResume();
-    registerReceiver(receiver, intentFilter);
+    registerReceiver(mReceiver, mIntentFilter);
 }
 /* unregister the broadcast receiver */
 &#064;Override
 protected void onPause() {
     super.onPause();
-    unregisterReceiver(receiver);
+    unregisterReceiver(mReceiver);
 }
 </pre>
 
diff --git a/docs/html/resources/tutorials/views/hello-webview.jd b/docs/html/resources/tutorials/views/hello-webview.jd
index 2d07647..f6a6a71 100644
--- a/docs/html/resources/tutorials/views/hello-webview.jd
+++ b/docs/html/resources/tutorials/views/hello-webview.jd
@@ -52,7 +52,7 @@
   <li>While you're in the manifest, give some more space for web pages by removing the title
   bar, with the "NoTitleBar" theme:
 <pre>
-&lt;activity android:name=".HelloGoogleMaps" android:label="@string/app_name"
+&lt;activity android:name=".HelloWebView" android:label="@string/app_name"
      <strong>android:theme="@android:style/Theme.NoTitleBar"</strong>&gt;
 </pre>
   </li>
diff --git a/docs/html/sdk/android-4.0-highlights.jd b/docs/html/sdk/android-4.0-highlights.jd
index 50e9a14..98f467d 100644
--- a/docs/html/sdk/android-4.0-highlights.jd
+++ b/docs/html/sdk/android-4.0-highlights.jd
@@ -343,7 +343,7 @@
 
 <p>The Camera app includes many new features that let users capture special moments
 with great photos and videos. After capturing images, they can edit and share
-them easily with friemds. </p>
+them easily with friends. </p>
 
 <p>When taking pictures, <strong>continuous focus</strong>, <strong>zero shutter
 lag exposure</strong>, and decreased shot-to-shot speed help capture clear,
diff --git a/docs/html/training/monitoring-device-state/docking-monitoring.jd b/docs/html/training/monitoring-device-state/docking-monitoring.jd
index 392ce30..82d655e 100644
--- a/docs/html/training/monitoring-device-state/docking-monitoring.jd
+++ b/docs/html/training/monitoring-device-state/docking-monitoring.jd
@@ -15,7 +15,7 @@
 
 <h2>This lesson teaches you to</h2>
 <ol>
-  <li><a href="#CurrentDockState">Request the Audio Focus</a></li>
+  <li><a href="#CurrentDockState">Determine the Current Docking State</a></li>
   <li><a href="#DockType">Determine the Current Dock Type</a></li>
   <li><a href="#MonitorDockState">Monitor for Changes in the Dock State or Type</a></li>
 </ol>
