diff --git a/src/afc.c b/src/afc.c
index fe99852..17273e2 100644
--- a/src/afc.c
+++ b/src/afc.c
@@ -235,7 +235,7 @@
 	}
 
 	/* check if it's a valid AFC header */
-	if (strncmp(header.magic, AFC_MAGIC, AFC_MAGIC_LEN)) {
+	if (strncmp(header.magic, AFC_MAGIC, AFC_MAGIC_LEN) != 0) {
 		debug_info("Invalid AFC packet received (magic != " AFC_MAGIC ")!");
 	}
 
diff --git a/src/device_link_service.c b/src/device_link_service.c
index 6daf84d..66c2461 100644
--- a/src/device_link_service.c
+++ b/src/device_link_service.c
@@ -83,7 +83,7 @@
 		return 0;
 	}
 
-	if ((strlen(cmd_str) < 9) || (strncmp(cmd_str, "DL", 2))) {
+	if ((strlen(cmd_str) < 9) || (strncmp(cmd_str, "DL", 2) != 0)) {
 		free(cmd_str);
 		return 0;
 	}
@@ -184,7 +184,7 @@
 		goto leave;
 	}
 	device_link_service_get_message(array, &msg);
-	if (!msg || strcmp(msg, "DLMessageVersionExchange")) {
+	if (!msg || strcmp(msg, "DLMessageVersionExchange") != 0) {
 		debug_info("Did not receive DLMessageVersionExchange from device!");
 		err = DEVICE_LINK_SERVICE_E_PLIST_ERROR;
 		goto leave;
@@ -239,7 +239,7 @@
 		goto leave;
 	}
 	device_link_service_get_message(array, &msg);
-	if (!msg || strcmp(msg, "DLMessageDeviceReady")) {
+	if (!msg || strcmp(msg, "DLMessageDeviceReady") != 0) {
 		debug_info("Did not get DLMessageDeviceReady!");
 		err = DEVICE_LINK_SERVICE_E_PLIST_ERROR;
 		goto leave;
@@ -403,7 +403,7 @@
 
 	char *msg = NULL;
 	device_link_service_get_message(pmsg, &msg);
-	if (!msg || strcmp(msg, "DLMessageProcessMessage")) {
+	if (!msg || strcmp(msg, "DLMessageProcessMessage") != 0) {
 		debug_info("Did not receive DLMessageProcessMessage as expected!");
 		err = DEVICE_LINK_SERVICE_E_PLIST_ERROR;
 		goto leave;
diff --git a/src/file_relay.c b/src/file_relay.c
index e304d31..aa77ae6 100644
--- a/src/file_relay.c
+++ b/src/file_relay.c
@@ -143,7 +143,7 @@
 		goto leave;
 	}
 
-	if (strcmp(ack, "Acknowledged")) {
+	if (strcmp(ack, "Acknowledged") != 0) {
 		debug_info("ERROR: Did not receive 'Acknowledged' but '%s'", ack);
 		goto leave;
 	}
diff --git a/src/lockdown.c b/src/lockdown.c
index 1786536..25e8c87 100644
--- a/src/lockdown.c
+++ b/src/lockdown.c
@@ -680,7 +680,7 @@
 	ret = lockdownd_query_type(client_loc, &type);
 	if (LOCKDOWN_E_SUCCESS != ret) {
 		debug_info("QueryType failed in the lockdownd client.");
-	} else if (strcmp("com.apple.mobile.lockdown", type)) {
+	} else if (strcmp("com.apple.mobile.lockdown", type) != 0) {
 		debug_info("Warning QueryType request returned \"%s\".", type);
 	}
 	free(type);
diff --git a/src/mobilesync.c b/src/mobilesync.c
index 8881e75..e50226c 100644
--- a/src/mobilesync.c
+++ b/src/mobilesync.c
@@ -473,7 +473,7 @@
 		goto out;
 	}
 
-	if (strcmp(response_type, "SDMessageDeviceWillClearAllRecords")) {
+	if (strcmp(response_type, "SDMessageDeviceWillClearAllRecords") != 0) {
 		err = MOBILESYNC_E_PLIST_ERROR;
 	}
 
diff --git a/src/screenshotr.c b/src/screenshotr.c
index 11d6506..77835da 100644
--- a/src/screenshotr.c
+++ b/src/screenshotr.c
@@ -142,7 +142,7 @@
 	plist_t node = plist_dict_get_item(dict, "MessageType");
 	char *strval = NULL;
 	plist_get_string_val(node, &strval);
-	if (!strval || strcmp(strval, "ScreenShotReply")) {
+	if (!strval || strcmp(strval, "ScreenShotReply") != 0) {
 		debug_info("invalid screenshot data received!");
 		res = SCREENSHOTR_E_PLIST_ERROR;
 		goto leave;
diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c
index 483f3d6..1e512d8 100644
--- a/tools/idevicebackup.c
+++ b/tools/idevicebackup.c
@@ -533,7 +533,7 @@
 	for ( i = 0; i < 20; i++, p += 2 ) {
 		snprintf (p, 3, "%02x", (unsigned char)fnhash[i] );
 	}
-	if (strcmp(fnamehash, hash)) {
+	if (strcmp(fnamehash, hash) != 0) {
 		printf("\r\n");
 		printf("WARNING: filename hash does not match for entry '%s'\n", hash);
 	}
@@ -544,7 +544,7 @@
 		plist_get_string_val(node, &auth_version);
 	}
 
-	if (strcmp(auth_version, "1.0")) {
+	if (strcmp(auth_version, "1.0") != 0) {
 		printf("\r\n");
 		printf("WARNING: Unknown AuthVersion '%s', DataHash cannot be verified!\n", auth_version);
 	}
diff --git a/tools/idevicedebug.c b/tools/idevicedebug.c
index c30b90e..7c9205f 100644
--- a/tools/idevicedebug.c
+++ b/tools/idevicedebug.c
@@ -406,7 +406,7 @@
 		debugserver_command_free(command);
 		command = NULL;
 		if (response) {
-			if (strncmp(response, "OK", 2)) {
+			if (strncmp(response, "OK", 2) != NULL) {
 				debugserver_client_handle_response(debugserver_client, &response, NULL);
 				goto cleanup;
 			}
@@ -423,7 +423,7 @@
 	debugserver_command_free(command);
 	command = NULL;
 	if (response) {
-		if (strncmp(response, "OK", 2)) {
+		if (strncmp(response, "OK", 2) != NULL) {
 			debugserver_client_handle_response(debugserver_client, &response, NULL);
 			goto cleanup;
 		}
@@ -439,7 +439,7 @@
 	debugserver_command_free(command);
 	command = NULL;
 	if (response) {
-		if (strncmp(response, "OK", 2)) {
+		if (strncmp(response, "OK", 2) != NULL) {
 			debugserver_client_handle_response(debugserver_client, &response, NULL);
 			goto cleanup;
 		}
@@ -480,7 +480,7 @@
 	debugserver_command_free(command);
 	command = NULL;
 	if (response) {
-		if (strncmp(response, "OK", 2)) {
+		if (strncmp(response, "OK", 2) != NULL) {
 			debugserver_client_handle_response(debugserver_client, &response, NULL);
 			goto cleanup;
 		}
@@ -514,7 +514,7 @@
 		debugserver_command_free(command);
 		command = NULL;
 		if (response) {
-			if (strncmp(response, "OK", 2)) {
+			if (strncmp(response, "OK", 2) != NULL) {
 				debugserver_client_handle_response(debugserver_client, &response, NULL);
 				goto cleanup;
 			}
@@ -540,7 +540,7 @@
 
 			if (response) {
 				log_debug("response: %s", response);
-				if (strncmp(response, "OK", 2)) {
+				if (strncmp(response, "OK", 2) != NULL) {
 					dres = debugserver_client_handle_response(debugserver_client, &response, &res);
 					if (dres != DEBUGSERVER_E_SUCCESS) {
 						log_debug("failed to process response; error %d; %s", dres, response);
@@ -567,7 +567,7 @@
 		debugserver_command_free(command);
 		command = NULL;
 		if (response) {
-			if (strncmp(response, "OK", 2)) {
+			if (strncmp(response, "OK", 2) != NULL) {
 				debugserver_client_handle_response(debugserver_client, &response, NULL);
 			}
 			free(response);
@@ -581,7 +581,7 @@
 		debugserver_command_free(command);
 		command = NULL;
 		if (response) {
-			if (strncmp(response, "OK", 2)) {
+			if (strncmp(response, "OK", 2) != NULL) {
 				debugserver_client_handle_response(debugserver_client, &response, NULL);
 			}
 			free(response);
diff --git a/tools/idevicepair.c b/tools/idevicepair.c
index a2dc944..f42f498 100644
--- a/tools/idevicepair.c
+++ b/tools/idevicepair.c
@@ -411,7 +411,7 @@
 		result = EXIT_FAILURE;
 		goto leave;
 	} else {
-		if (strcmp("com.apple.mobile.lockdown", type)) {
+		if (strcmp("com.apple.mobile.lockdown", type) != 0) {
 			printf("WARNING: QueryType request returned '%s'\n", type);
 		}
 		free(type);
