diff --git a/contrib/mod_defender/spoa.c b/contrib/mod_defender/spoa.c
index 2ae1a36..78c009e 100644
--- a/contrib/mod_defender/spoa.c
+++ b/contrib/mod_defender/spoa.c
@@ -1044,7 +1044,7 @@
 		return;
 
 	list_for_each_entry(eng, &client->worker->engines, list) {
-		if (!strcmp(eng->id, client->engine_id))
+		if (strcmp(eng->id, client->engine_id) == 0)
 			goto end;
 	}
 
@@ -1749,11 +1749,11 @@
 				server_port = atoi(optarg);
 				break;
 			case 'c':
-				if (!strcmp(optarg, "pipelining"))
+				if (strcmp(optarg, "pipelining") == 0)
 					pipelining = true;
-				else if (!strcmp(optarg, "async"))
+				else if (strcmp(optarg, "async") == 0)
 					async = true;
-				else if (!strcmp(optarg, "fragmentation"))
+				else if (strcmp(optarg, "fragmentation") == 0)
 					fragmentation = true;
 				else
 					fprintf(stderr, "WARNING: unsupported capability '%s'\n", optarg);
diff --git a/contrib/mod_defender/standalone.c b/contrib/mod_defender/standalone.c
index f926ec1..58d1940 100644
--- a/contrib/mod_defender/standalone.c
+++ b/contrib/mod_defender/standalone.c
@@ -863,7 +863,7 @@
                                        const command_rec *cmds)
 {
 	while (cmds->name) {
-		if (!strcasecmp(name, cmds->name))
+		if (strcasecmp(name, cmds->name) == 0)
 			return cmds;
 		++cmds;
 	}
@@ -1044,7 +1044,7 @@
 		 */
 		w = getword_conf(parms->temp_pool, &args);
 
-		if (*w == '\0' || (strcasecmp(w, "on") && strcasecmp(w, "off")))
+		if (*w == '\0' || (strcasecmp(w, "on") != 0 && strcasecmp(w, "off") != 0))
 			return apr_pstrcat(parms->pool, cmd->name, " must be On or Off",
 			                   NULL);
 
@@ -1151,8 +1151,8 @@
 		candidates = apr_array_make(ptemp, 1, sizeof(fnames));
 		while (apr_dir_read(&dirent, APR_FINFO_DIRENT, dirp) == APR_SUCCESS) {
 			/* strip out '.' and '..' */
-			if (strcmp(dirent.name, ".")
-			    && strcmp(dirent.name, "..")) {
+			if (strcmp(dirent.name, ".") != 0
+			    && strcmp(dirent.name, "..") != 0) {
 				fnew = (fnames *) apr_array_push(candidates);
 				fnew->fname = make_full_path(ptemp, path, dirent.name);
 			}
@@ -1236,8 +1236,8 @@
 	candidates = apr_array_make(ptemp, 1, sizeof(fnames));
 	while (apr_dir_read(&dirent, APR_FINFO_DIRENT | APR_FINFO_TYPE, dirp) == APR_SUCCESS) {
 		/* strip out '.' and '..' */
-		if (strcmp(dirent.name, ".")
-		    && strcmp(dirent.name, "..")
+		if (strcmp(dirent.name, ".") != 0
+		    && strcmp(dirent.name, "..") != 0
 		    && (apr_fnmatch(fname, dirent.name,
 			                APR_FNM_PERIOD) == APR_SUCCESS)) {
 			const char *full_path = make_full_path(ptemp, path, dirent.name);
@@ -1388,12 +1388,12 @@
 				continue;
 
 			/* similar to invoke_cmd() */
-			if (!strcasecmp(cmd_name, "IncludeOptional") ||
-			    !strcasecmp(cmd_name, "Include"))
+			if (strcasecmp(cmd_name, "IncludeOptional") == 0 ||
+			    strcasecmp(cmd_name, "Include") == 0)
 			{
 				char *w, *fullname;
 
-				if (!strcasecmp(cmd_name, "IncludeOptional"))
+				if (strcasecmp(cmd_name, "IncludeOptional") == 0)
 					optional = 1;
 
 				w = getword_conf(parms->pool, &args);
