diff --git a/BandwidthController.cpp b/BandwidthController.cpp
index b91a7c6..fa94d30 100644
--- a/BandwidthController.cpp
+++ b/BandwidthController.cpp
@@ -41,7 +41,7 @@
 #include <cutils/log.h>
 #include <cutils/properties.h>
 
-extern "C" int logwrap(int argc, const char **argv, int background);
+extern "C" int logwrap(int argc, const char **argv);
 extern "C" int system_nosh(const char *command);
 
 #include "BandwidthController.h"
@@ -204,7 +204,7 @@
         }
 
         argv[argc] = NULL;
-        res = logwrap(argc, argv, 0);
+        res = logwrap(argc, argv);
     }
     if (res) {
         ALOGE("runIptablesCmd(): failed %s res=%d", fullCmd.c_str(), res);
diff --git a/PppController.cpp b/PppController.cpp
index d20cc48..6b54c31 100644
--- a/PppController.cpp
+++ b/PppController.cpp
@@ -34,8 +34,6 @@
 
 #include "PppController.h"
 
-extern "C" int logwrap(int argc, const char **argv, int background);
-
 PppController::PppController() {
     mTtys = new TtyCollection();
     mPid = 0;
diff --git a/logwrapper.c b/logwrapper.c
index 1c94710..ff9201a 100644
--- a/logwrapper.c
+++ b/logwrapper.c
@@ -103,7 +103,7 @@
     _exit(1);
 }
 
-int logwrap(int argc, const char* argv[], int background)
+int logwrap(int argc, const char* argv[])
 {
     pid_t pid;
 
@@ -147,22 +147,6 @@
         dup2(child_ptty, 2);
         close(child_ptty);
 
-        if (background) {
-            int fd = open("/dev/cpuctl/bg_non_interactive/tasks", O_WRONLY);
-            if (fd >= 0) {
-                char text[64];
-                sprintf(text, "%d", getpid());
-                if (write(fd, text, strlen(text)) < 0) {
-                    ALOG(LOG_WARN, "logwrapper",
-                        "Unable to background process (%s)", strerror(errno));
-                }
-                close(fd);
-            } else {
-                ALOG(LOG_WARN, "logwrapper",
-                    "Unable to background process (%s)", strerror(errno));
-            }
-        }
-
         child(argc, argv);
     } else {
         /*
