diff --git a/cpp/Allocation.cpp b/cpp/Allocation.cpp
index 5dd6af6..121d88d 100644
--- a/cpp/Allocation.cpp
+++ b/cpp/Allocation.cpp
@@ -17,7 +17,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 void * Allocation::getIDSafe() const {
     return getID();
diff --git a/cpp/BaseObj.cpp b/cpp/BaseObj.cpp
index 4a9faac..bb92bce 100644
--- a/cpp/BaseObj.cpp
+++ b/cpp/BaseObj.cpp
@@ -19,7 +19,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 void * BaseObj::getID() const {
     if (mID == NULL) {
diff --git a/cpp/Element.cpp b/cpp/Element.cpp
index 99b1069..198aac8 100644
--- a/cpp/Element.cpp
+++ b/cpp/Element.cpp
@@ -20,7 +20,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 sp<const Element> Element::getSubElement(uint32_t index) {
     if (!mVisibleElementMap.size()) {
diff --git a/cpp/RenderScript.cpp b/cpp/RenderScript.cpp
index 4a96dce..ffc0ce6 100644
--- a/cpp/RenderScript.cpp
+++ b/cpp/RenderScript.cpp
@@ -25,7 +25,7 @@
 #include "rs.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 bool RS::gInitialized = false;
 pthread_mutex_t RS::gInitMutex = PTHREAD_MUTEX_INITIALIZER;
diff --git a/cpp/Script.cpp b/cpp/Script.cpp
index 074c463..09d541d 100644
--- a/cpp/Script.cpp
+++ b/cpp/Script.cpp
@@ -20,7 +20,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 void Script::invoke(uint32_t slot, const void *v, size_t len) const {
     rsScriptInvokeV(mRS->getContext(), getID(), slot, v, len);
diff --git a/cpp/ScriptC.cpp b/cpp/ScriptC.cpp
index 3a1909d..bc7ca0e 100644
--- a/cpp/ScriptC.cpp
+++ b/cpp/ScriptC.cpp
@@ -20,7 +20,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 ScriptC::ScriptC(sp<RS> rs,
                  const void *codeTxt, size_t codeLength,
diff --git a/cpp/ScriptIntrinsics.cpp b/cpp/ScriptIntrinsics.cpp
index 7436351..1284736 100644
--- a/cpp/ScriptIntrinsics.cpp
+++ b/cpp/ScriptIntrinsics.cpp
@@ -21,7 +21,7 @@
 #include "rsDefines.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 ScriptIntrinsic::ScriptIntrinsic(sp<RS> rs, int id, sp<const Element> e)
     : Script(NULL, rs) {
diff --git a/cpp/Type.cpp b/cpp/Type.cpp
index 1b64c30..6b9ac40 100644
--- a/cpp/Type.cpp
+++ b/cpp/Type.cpp
@@ -23,7 +23,7 @@
 #include "RenderScript.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 void Type::calcElementCount() {
     bool hasLod = hasMipmaps();
diff --git a/cpp/rsCppStructs.h b/cpp/rsCppStructs.h
index f1376b0..3598367 100644
--- a/cpp/rsCppStructs.h
+++ b/cpp/rsCppStructs.h
@@ -24,7 +24,7 @@
 #include <rs.h>
 
 namespace android {
-namespace renderscriptCpp {
+namespace RSC {
 
 typedef void (*ErrorHandlerFunc_t)(uint32_t errorNum, const char *errorText);
 typedef void (*MessageHandlerFunc_t)(uint32_t msgNum, const void *msgData, size_t msgLen);
diff --git a/tests/cppallocation/compute.cpp b/tests/cppallocation/compute.cpp
index 214ffe9..8439ffb 100644
--- a/tests/cppallocation/compute.cpp
+++ b/tests/cppallocation/compute.cpp
@@ -4,7 +4,7 @@
 #include "ScriptC_multiply.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 int main(int argc, char** argv)
 {
diff --git a/tests/cppbasic/compute.cpp b/tests/cppbasic/compute.cpp
index e015165..782410a 100644
--- a/tests/cppbasic/compute.cpp
+++ b/tests/cppbasic/compute.cpp
@@ -4,7 +4,7 @@
 #include "ScriptC_mono.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 int main(int argc, char** argv)
 {
diff --git a/tests/latency/latency.cpp b/tests/latency/latency.cpp
index b6e45e1..b6a6c47 100644
--- a/tests/latency/latency.cpp
+++ b/tests/latency/latency.cpp
@@ -4,7 +4,7 @@
 #include "ScriptC_latency.h"
 
 using namespace android;
-using namespace renderscriptCpp;
+using namespace RSC;
 
 int main(int argc, char** argv)
 {
