diff --git a/libs/rs/java/Fountain/AndroidManifest.xml b/libs/rs/java/Fountain/AndroidManifest.xml
index dd0e428..1185930 100644
--- a/libs/rs/java/Fountain/AndroidManifest.xml
+++ b/libs/rs/java/Fountain/AndroidManifest.xml
@@ -2,8 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.fountain">
     <application android:label="Fountain">
-        <activity android:name="Fountain"
-                  android:theme="@android:style/Theme.Translucent">
+        <activity android:name="Fountain">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index cc11ab2..0ac8320 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -317,7 +317,7 @@
     }
 
     while(!mRunning) {
-        sleep(1);
+        usleep(100);
     }
 
     pthread_attr_destroy(&threadAttr);
diff --git a/libs/rs/rsLocklessFifo.cpp b/libs/rs/rsLocklessFifo.cpp
index 0c403895..f4f5d40 100644
--- a/libs/rs/rsLocklessFifo.cpp
+++ b/libs/rs/rsLocklessFifo.cpp
@@ -159,7 +159,7 @@
     if ((mPut+bytes) > mEnd) {
         // Need to loop regardless of where get is.
         while((mGet > mPut) && (mBuffer+4 >= mGet)) {
-            sleep(1);
+            usleep(100);
         }
 
         // Toss in a reset then the normal wait for space will do the rest.
@@ -170,7 +170,7 @@
 
     // it will fit here so we just need to wait for space.
     while(getFreeSpace() < bytes) {
-        sleep(1);
+        usleep(100);
     }
 
 }
diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp
index 99a085d..76fed3b 100644
--- a/libs/rs/rsScript.cpp
+++ b/libs/rs/rsScript.cpp
@@ -94,6 +94,7 @@
 void rsi_ScriptInvoke(Context *rsc, RsScript vs, uint32_t slot)
 {
     Script *s = static_cast<Script *>(vs);
+    s->setupScript();
     s->mEnviroment.mInvokables[slot]();
 }
 
diff --git a/libs/rs/rsScript.h b/libs/rs/rsScript.h
index e40531e..97cb67a 100644
--- a/libs/rs/rsScript.h
+++ b/libs/rs/rsScript.h
@@ -69,6 +69,7 @@
 
 
 
+    virtual void setupScript() = 0;
     virtual bool run(Context *, uint32_t launchID) = 0;
 };
 
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 108ae5a..bff337c 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -46,6 +46,15 @@
     }
 }
 
+void ScriptC::setupScript()
+{
+    for (int ct=0; ct < MAX_SCRIPT_BANKS; ct++) {
+        if (mProgram.mSlotPointers[ct]) {
+            *mProgram.mSlotPointers[ct] = mSlots[ct]->getPtr();
+        }
+    }
+}
+
 
 bool ScriptC::run(Context *rsc, uint32_t launchIndex)
 {
@@ -66,12 +75,7 @@
         mEnviroment.mStartTimeMillis
                 = nanoseconds_to_milliseconds(systemTime(SYSTEM_TIME_MONOTONIC));
     }
-
-    for (int ct=0; ct < MAX_SCRIPT_BANKS; ct++) {
-        if (mProgram.mSlotPointers[ct]) {
-            *mProgram.mSlotPointers[ct] = mSlots[ct]->getPtr();
-        }
-    }
+    setupScript();
 
     bool ret = false;
     tls->mScript = this;
diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h
index 355f0c3..16eb8de 100644
--- a/libs/rs/rsScriptC.h
+++ b/libs/rs/rsScriptC.h
@@ -58,6 +58,7 @@
 
     ACCscript*    mAccScript;
 
+    virtual void setupScript();
     virtual bool run(Context *, uint32_t launchID);
 };
 
