diff --git a/core/java/android/test/InstrumentationTestCase.java b/core/java/android/test/InstrumentationTestCase.java
index 82f2ef9..470ab0d 100644
--- a/core/java/android/test/InstrumentationTestCase.java
+++ b/core/java/android/test/InstrumentationTestCase.java
@@ -62,6 +62,10 @@
      *  action = {@link Intent#ACTION_MAIN}
      *  extras = null, unless a custom bundle is provided here
      * All other fields are null or empty.
+     * 
+     * <p><b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
      *
      * @param pkg The package hosting the activity to be launched.
      * @param activityCls The activity class to launch.
@@ -82,6 +86,11 @@
 
     /**
      * Utility method for launching an activity with a specific Intent.
+     * 
+     * <p><b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
+     *
      * @param pkg The package hosting the activity to be launched.
      * @param activityCls The activity class to launch.
      * @param intent The intent to launch with
diff --git a/test-runner/android/test/ActivityInstrumentationTestCase.java b/test-runner/android/test/ActivityInstrumentationTestCase.java
index e5a9991..f6b31ad 100644
--- a/test-runner/android/test/ActivityInstrumentationTestCase.java
+++ b/test-runner/android/test/ActivityInstrumentationTestCase.java
@@ -40,7 +40,11 @@
     boolean mInitialTouchMode = false;
 
     /**
-     * @param pkg The package of the instrumentation.
+     * <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
+     * 
+     * @param pkg The package hosting the activity to be launched.
      * @param activityClass The activity to test.
      */
     public ActivityInstrumentationTestCase(String pkg, Class<T> activityClass) {
@@ -48,7 +52,11 @@
     }
 
     /**
-     * @param pkg The package of the instrumentation.
+     * <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
+     * 
+     * @param pkg The package hosting the activity to be launched.
      * @param activityClass The activity to test.
      * @param initialTouchMode true = in touch mode
      */
diff --git a/test-runner/android/test/ActivityInstrumentationTestCase2.java b/test-runner/android/test/ActivityInstrumentationTestCase2.java
index 7a84eca..679f634 100644
--- a/test-runner/android/test/ActivityInstrumentationTestCase2.java
+++ b/test-runner/android/test/ActivityInstrumentationTestCase2.java
@@ -46,7 +46,11 @@
     Intent mActivityIntent = null;
 
     /**
-     * @param pkg The package of the instrumentation.
+     * <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
+     * 
+     * @param pkg The package hosting the activity to be launched.
      * @param activityClass The activity to test.
      */
     public ActivityInstrumentationTestCase2(String pkg, Class<T> activityClass) {
diff --git a/test-runner/android/test/SingleLaunchActivityTestCase.java b/test-runner/android/test/SingleLaunchActivityTestCase.java
index 8d43b73..b63b3ce 100644
--- a/test-runner/android/test/SingleLaunchActivityTestCase.java
+++ b/test-runner/android/test/SingleLaunchActivityTestCase.java
@@ -37,7 +37,11 @@
     private static boolean sActivityLaunchedFlag = false;
 
     /**
-     * @param pkg The package of the instrumentation.
+     * <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the
+     * package hosting the activity to be launched, which is specified in the AndroidManifest.xml
+     * file.  This is not necessarily the same as the java package name.
+     *
+     * @param pkg The package hosting the activity to be launched.
      * @param activityClass The activity to test.
      */
     public SingleLaunchActivityTestCase(String pkg, Class<T> activityClass) {
