diff --git a/src/xplist.c b/src/xplist.c
index 537d315..dc70864 100644
--- a/src/xplist.c
+++ b/src/xplist.c
@@ -749,7 +749,7 @@
         }
     } while (1);
     ctx->pos++;
-    if (ctx->pos >= ctx->end-tag_len || strncmp(ctx->pos, tag, tag_len)) {
+    if (ctx->pos >= ctx->end-tag_len || strncmp(ctx->pos, tag, tag_len) != 0) {
         PLIST_XML_ERR("EOF or end tag mismatch\n");
         ctx->err++;
         return NULL;
@@ -965,7 +965,7 @@
                 ctx->err++;
                 goto err_out;
             }
-            if (strncmp(ctx->pos, "?>", 2)) {
+            if (strncmp(ctx->pos, "?>", 2) != 0) {
                 PLIST_XML_ERR("Couldn't find <? tag closing marker\n");
                 ctx->err++;
                 goto err_out;
@@ -977,7 +977,7 @@
             if (((ctx->end - ctx->pos) > 3) && !strncmp(ctx->pos, "!--", 3)) {
                 ctx->pos += 3;
                 find_str(ctx,"-->", 3, 0);
-                if (ctx->pos > ctx->end-3 || strncmp(ctx->pos, "-->", 3)) {
+                if (ctx->pos > ctx->end-3 || strncmp(ctx->pos, "-->", 3) != 0) {
                     PLIST_XML_ERR("Couldn't find end of comment\n");
                     ctx->err++;
                     goto err_out;
@@ -1006,7 +1006,7 @@
                 }
                 if (embedded_dtd) {
                     find_str(ctx, "]>", 2, 1);
-                    if (ctx->pos > ctx->end-2 || strncmp(ctx->pos, "]>", 2)) {
+                    if (ctx->pos > ctx->end-2 || strncmp(ctx->pos, "]>", 2) != 0) {
                         PLIST_XML_ERR("Couldn't find end of DOCTYPE\n");
                         ctx->err++;
                         goto err_out;
diff --git a/tools/plistutil.c b/tools/plistutil.c
index bbce7c7..989db35 100644
--- a/tools/plistutil.c
+++ b/tools/plistutil.c
@@ -274,7 +274,7 @@
 
     if (plist_out)
     {
-        if (options->out_file != NULL && strcmp(options->out_file, "-"))
+        if (options->out_file != NULL && strcmp(options->out_file, "-") != 0)
         {
             FILE *oplist = fopen(options->out_file, "wb");
             if (!oplist) {
