diff --git a/libsysutils/src/FrameworkListener.cpp b/libsysutils/src/FrameworkListener.cpp
index 71e0772..e8ae847 100644
--- a/libsysutils/src/FrameworkListener.cpp
+++ b/libsysutils/src/FrameworkListener.cpp
@@ -59,9 +59,11 @@
 }
 
 void FrameworkListener::dispatchCommand(SocketClient *cli, char *cmd) {
-    char *cm, *last;
+    char *next = cmd;
+    char *cm;
+    char *arg;
 
-    if (!(cm = strtok_r(cmd, ":", &last))) {
+    if (!(cm = strsep(&next, ":"))) {
         cli->sendMsg(500, "Malformatted message", false);
         return;
     }
@@ -72,8 +74,7 @@
         FrameworkCommand *c = *i;
 
         if (!strcmp(cm, c->getCommand())) {
-            cm += strlen(cm) +1;
-            if (c->runCommand(cli, cm)) {
+            if (c->runCommand(cli, next)) {
                 LOGW("Handler '%s' error (%s)", c->getCommand(), strerror(errno));
             }
             return;
diff --git a/libsysutils/src/NetlinkEvent.cpp b/libsysutils/src/NetlinkEvent.cpp
index 1e94ed1..5573c3f 100644
--- a/libsysutils/src/NetlinkEvent.cpp
+++ b/libsysutils/src/NetlinkEvent.cpp
@@ -67,9 +67,9 @@
                     mAction = NlActionRemove;
                 else if (!strcmp(a, "change"))
                     mAction = NlActionChange;
-            } else if (!strncmp(s, "SEQNUM=", strlen("SEQNUM="))) 
+            } else if (!strncmp(s, "SEQNUM=", strlen("SEQNUM=")))
                 mSeq = atoi(s + strlen("SEQNUM="));
-            else if (!strncmp(s, "SUBSYSTEM=", strlen("SUBSYSTEM="))) 
+            else if (!strncmp(s, "SUBSYSTEM=", strlen("SUBSYSTEM=")))
                 mSubsystem = strdup(s + strlen("SUBSYSTEM="));
             else
                 mParams[param_idx++] = strdup(s);
diff --git a/libsysutils/src/SocketClient.cpp b/libsysutils/src/SocketClient.cpp
index b229627..f0e846f 100644
--- a/libsysutils/src/SocketClient.cpp
+++ b/libsysutils/src/SocketClient.cpp
@@ -16,7 +16,7 @@
 
 int SocketClient::sendMsg(int code, const char *msg, bool addErrno) {
     char *buf;
-    
+
     if (addErrno) {
         buf = (char *) alloca(strlen(msg) + strlen(strerror(errno)) + 8);
         sprintf(buf, "%.3d %s (%s)", code, msg, strerror(errno));
@@ -42,7 +42,7 @@
         strcat(tmp, "\n");
         bp = tmp;
     }
-       
+
     int rc = 0;
     const char *p = bp;
     int brtw = strlen(bp);
diff --git a/libsysutils/src/SocketListener.cpp b/libsysutils/src/SocketListener.cpp
index cb7dd80..1f80121 100644
--- a/libsysutils/src/SocketListener.cpp
+++ b/libsysutils/src/SocketListener.cpp
@@ -125,7 +125,7 @@
                 max = (*it)->getSocket();
         }
         pthread_mutex_unlock(&mClientsLock);
-        
+
         if ((rc = select(max + 1, &read_fds, NULL, NULL, NULL)) < 0) {
             LOGE("select failed (%s)", strerror(errno));
             sleep(1);
