diff --git a/scriptc/rs_core.rsh b/scriptc/rs_core.rsh
index 2aab509..9caf355 100644
--- a/scriptc/rs_core.rsh
+++ b/scriptc/rs_core.rsh
@@ -16,27 +16,24 @@
 
  /*! \mainpage notitle
   *
-  * Renderscript is a high-performance runtime that provides graphics rendering and
-  * compute operations at the native level. Renderscript code is compiled on devices
+  * RenderScript is a high-performance runtime that provides
+  * compute operations at the native level. RenderScript code is compiled on devices
   * at runtime to allow platform-independence as well.
-  * This reference documentation describes the Renderscript runtime APIs, which you
-  * can utilize to write Renderscript code in C99. The Renderscript header
-  * files are automatically included for you, except for the rs_graphics.rsh header. If
-  * you are doing graphics rendering, include the graphics header file like this:
+  * This reference documentation describes the RenderScript runtime APIs, which you
+  * can utilize to write RenderScript code in C99. The RenderScript compute header
+  * files are automatically included for you.
   *
-  * <code>#include "rs_graphics.rsh"</code>
-  *
-  * To use Renderscript, you need to utilize the Renderscript runtime APIs documented here
-  * as well as the Android framework APIs for Renderscript.
+  * To use RenderScript, you need to utilize the RenderScript runtime APIs documented here
+  * as well as the Android framework APIs for RenderScript.
   * For documentation on the Android framework APIs, see the <a target="_parent" href=
   * "http://developer.android.com/reference/android/renderscript/package-summary.html">
   * android.renderscript</a> package reference.
-  * For more information on how to develop with Renderscript and how the runtime and
+  * For more information on how to develop with RenderScript and how the runtime and
   * Android framework APIs interact, see the <a target="_parent" href=
-  * "http://developer.android.com/guide/topics/renderscript/index.html">Renderscript
+  * "http://developer.android.com/guide/topics/renderscript/index.html">RenderScript
   * developer guide</a> and the <a target="_parent" href=
   * "http://developer.android.com/resources/samples/RenderScript/index.html">
-  * Renderscript samples</a>.
+  * RenderScript samples</a>.
   */
 
 /** @file rs_core.rsh
diff --git a/scriptc/rs_graphics.rsh b/scriptc/rs_graphics.rsh
index 44ee99f..782b27f 100644
--- a/scriptc/rs_graphics.rsh
+++ b/scriptc/rs_graphics.rsh
@@ -15,9 +15,9 @@
  */
 
 /** @file rs_graphics.rsh
- *  \brief Renderscript graphics API
+ *  \brief RenderScript graphics API
  *
- *  A set of graphics functions used by Renderscript.
+ *  A set of graphics functions used by RenderScript.
  *
  */
 #ifndef __RS_GRAPHICS_RSH__
@@ -63,7 +63,7 @@
     rsgClearAllRenderTargets(void);
 
 /**
- * Force Renderscript to finish all rendering commands
+ * Force RenderScript to finish all rendering commands
  */
 extern uint __attribute__((overloadable))
     rsgFinish(void);
diff --git a/scriptc/rs_time.rsh b/scriptc/rs_time.rsh
index 60e3dee..1e6ab99 100644
--- a/scriptc/rs_time.rsh
+++ b/scriptc/rs_time.rsh
@@ -15,9 +15,9 @@
  */
 
 /** @file rs_time.rsh
- *  \brief Renderscript time routines
+ *  \brief RenderScript time routines
  *
- *  This file contains Renderscript functions relating to time and date
+ *  This file contains RenderScript functions relating to time and date
  *  manipulation.
  */
 
diff --git a/scriptc/rs_types.rsh b/scriptc/rs_types.rsh
index 57dba37..de09279 100644
--- a/scriptc/rs_types.rsh
+++ b/scriptc/rs_types.rsh
@@ -16,7 +16,7 @@
 
 /** @file rs_types.rsh
  *
- *  Define the standard Renderscript types
+ *  Define the standard RenderScript types
  *
  *  Integers
  *  8 bit: char, int8_t
@@ -115,73 +115,73 @@
 typedef int32_t ssize_t;
 
 /**
- * \brief Opaque handle to a Renderscript element.
+ * \brief Opaque handle to a RenderScript element.
  *
  * See: android.renderscript.Element
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element;
 /**
- * \brief Opaque handle to a Renderscript type.
+ * \brief Opaque handle to a RenderScript type.
  *
  * See: android.renderscript.Type
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type;
 /**
- * \brief Opaque handle to a Renderscript allocation.
+ * \brief Opaque handle to a RenderScript allocation.
  *
  * See: android.renderscript.Allocation
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation;
 /**
- * \brief Opaque handle to a Renderscript sampler object.
+ * \brief Opaque handle to a RenderScript sampler object.
  *
  * See: android.renderscript.Sampler
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_sampler;
 /**
- * \brief Opaque handle to a Renderscript script object.
+ * \brief Opaque handle to a RenderScript script object.
  *
  * See: android.renderscript.ScriptC
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_script;
 /**
- * \brief Opaque handle to a Renderscript mesh object.
+ * \brief Opaque handle to a RenderScript mesh object.
  *
  * See: android.renderscript.Mesh
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_mesh;
 /**
- * \brief Opaque handle to a Renderscript Path object.
+ * \brief Opaque handle to a RenderScript Path object.
  *
  * See: android.renderscript.Path
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_path;
 /**
- * \brief Opaque handle to a Renderscript ProgramFragment object.
+ * \brief Opaque handle to a RenderScript ProgramFragment object.
  *
  * See: android.renderscript.ProgramFragment
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_fragment;
 /**
- * \brief Opaque handle to a Renderscript ProgramVertex object.
+ * \brief Opaque handle to a RenderScript ProgramVertex object.
  *
  * See: android.renderscript.ProgramVertex
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_vertex;
 /**
- * \brief Opaque handle to a Renderscript ProgramRaster object.
+ * \brief Opaque handle to a RenderScript ProgramRaster object.
  *
  * See: android.renderscript.ProgramRaster
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_raster;
 /**
- * \brief Opaque handle to a Renderscript ProgramStore object.
+ * \brief Opaque handle to a RenderScript ProgramStore object.
  *
  * See: android.renderscript.ProgramStore
  */
 typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_store;
 /**
- * \brief Opaque handle to a Renderscript font object.
+ * \brief Opaque handle to a RenderScript font object.
  *
  * See: android.renderscript.Font
  */
