diff --git a/rsObjectBase.cpp b/rsObjectBase.cpp
index 17064a5..f864bac 100644
--- a/rsObjectBase.cpp
+++ b/rsObjectBase.cpp
@@ -133,11 +133,8 @@
 bool ObjectBase::zeroUserRef() const {
     //ALOGV("ObjectBase %p zeroU ref %i, %i", this, mUserRefCount, mSysRefCount);
     __sync_and_and_fetch(&mUserRefCount, 0);
-    if ((__sync_fetch_and_sub(&mUserRefCount, 1) <= 1)) {
-        __sync_synchronize();
-        if (mSysRefCount <= 0) {
-            return checkDelete(this);
-        }
+    if (mSysRefCount <= 0) {
+        return checkDelete(this);
     }
     return false;
 }
diff --git a/rsScript.cpp b/rsScript.cpp
index f2fc5ba..a12505c 100644
--- a/rsScript.cpp
+++ b/rsScript.cpp
@@ -129,11 +129,15 @@
 namespace renderscript {
 
 RsScriptKernelID rsi_ScriptKernelIDCreate(Context *rsc, RsScript vs, int slot, int sig) {
-    return new ScriptKernelID(rsc, (Script *)vs, slot, sig);
+    ScriptKernelID *kid = new ScriptKernelID(rsc, (Script *)vs, slot, sig);
+    kid->incUserRef();
+    return kid;
 }
 
 RsScriptFieldID rsi_ScriptFieldIDCreate(Context *rsc, RsScript vs, int slot) {
-    return new ScriptFieldID(rsc, (Script *)vs, slot);
+    ScriptFieldID *fid = new ScriptFieldID(rsc, (Script *)vs, slot);
+    fid->incUserRef();
+    return fid;
 }
 
 void rsi_ScriptBindAllocation(Context * rsc, RsScript vs, RsAllocation va, uint32_t slot) {
diff --git a/rsScriptGroup.cpp b/rsScriptGroup.cpp
index f157fee..55acf23 100644
--- a/rsScriptGroup.cpp
+++ b/rsScriptGroup.cpp
@@ -249,6 +249,7 @@
     if (rsc->mHal.funcs.scriptgroup.init) {
         rsc->mHal.funcs.scriptgroup.init(rsc, sg);
     }
+    sg->incUserRef();
     return sg;
 }
 
