diff --git a/src/in-report.c b/src/in-report.c
index 01daf5e37f87c2eb11899bfecb35d31419602f75..883ea042dd9db7658abe0da116ad0c57472052b1 100644
--- a/src/in-report.c
+++ b/src/in-report.c
@@ -360,8 +360,8 @@ readscan_report(  unsigned ip,
         }
 
         banout_release(banout);
-    } else if (0 && app_proto == PROTO_SSL3) {
-        cndb_add(ip, data, data_length);
+    /*} else if (0 && app_proto == PROTO_SSL3) {
+        cndb_add(ip, data, data_length);*/
     } else if (app_proto == PROTO_VULN) {
         const char *name = cndb_lookup(ip);
         
diff --git a/src/main-conf.c b/src/main-conf.c
index 03187f8d43b93d470bbd25981f399c41a94b58ca..3491930a2c2779aa6f3a11ba06bd287a8bd33833 100644
--- a/src/main-conf.c
+++ b/src/main-conf.c
@@ -22,7 +22,7 @@
 #include "crypto-base64.h"
 #include "script.h"
 #include "masscan-app.h"
-
+#include "unusedparm.h"
 #include <ctype.h>
 #include <limits.h>
 
@@ -829,6 +829,10 @@ enum {CONF_OK, CONF_WARN, CONF_ERR};
 static int SET_arpscan(struct Masscan *masscan, const char *name, const char *value)
 {
     struct Range range;
+
+    UNUSEDPARM(name);
+    UNUSEDPARM(value);
+
     if (masscan->echo) {
         if (masscan->scan_type.arp || masscan->echo_all)
             fprintf(masscan->echo, "arpscan = %s\n", masscan->scan_type.arp?"true":"false");
@@ -845,6 +849,7 @@ static int SET_arpscan(struct Masscan *masscan, const char *name, const char *va
 
 static int SET_banners(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->is_banners || masscan->echo_all)
             fprintf(masscan->echo, "banners = %s\n", masscan->is_banners?"true":"false");
@@ -899,6 +904,7 @@ static int SET_capture(struct Masscan *masscan, const char *name, const char *va
 
 static int SET_hello(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->is_hello_ssl) {
             fprintf(masscan->echo, "hello = ssl\n");
@@ -1004,6 +1010,7 @@ static int SET_hello_string(struct Masscan *masscan, const char *name, const cha
 
 static int SET_hello_timeout(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->tcp_hello_timeout || masscan->echo_all)
             fprintf(masscan->echo, "hello-timeout = %u\n", masscan->tcp_hello_timeout);
@@ -1015,6 +1022,7 @@ static int SET_hello_timeout(struct Masscan *masscan, const char *name, const ch
 
 static int SET_min_packet(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->min_packet_size != 60 || masscan->echo_all)
             fprintf(masscan->echo, "min-packet = %u\n", masscan->min_packet_size);
@@ -1027,6 +1035,7 @@ static int SET_min_packet(struct Masscan *masscan, const char *name, const char
 
 static int SET_nobanners(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         return 0;
     }
@@ -1036,6 +1045,7 @@ static int SET_nobanners(struct Masscan *masscan, const char *name, const char *
 
 static int SET_noreset(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->is_noreset || masscan->echo_all)
             fprintf(masscan->echo, "noreset = %s\n", masscan->is_noreset?"true":"false");
@@ -1062,6 +1072,7 @@ static int SET_output_append(struct Masscan *masscan, const char *name, const ch
 
 static int SET_output_filename(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->output.filename[0] || masscan->echo_all)
             fprintf(masscan->echo, "output-filename = %s\n", masscan->output.filename);
@@ -1078,6 +1089,7 @@ static int SET_output_filename(struct Masscan *masscan, const char *name, const
 static int SET_output_format(struct Masscan *masscan, const char *name, const char *value)
 {
     enum OutputFormat x = 0;
+    UNUSEDPARM(name);
     if (masscan->echo) {
         FILE *fp = masscan->echo;
         switch (masscan->output.format) {
@@ -1133,6 +1145,7 @@ static int SET_output_format(struct Masscan *masscan, const char *name, const ch
 
 static int SET_output_noshow(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->echo_all) {
             fprintf(masscan->echo, "output-noshow = %s%s%s\n",
@@ -1172,6 +1185,7 @@ static int SET_output_noshow(struct Masscan *masscan, const char *name, const ch
 
 static int SET_output_show(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->echo_all) {
             fprintf(masscan->echo, "output-show = %s%s%s\n",
@@ -1210,6 +1224,8 @@ static int SET_output_show(struct Masscan *masscan, const char *name, const char
 }
 static int SET_output_show_open(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
+    UNUSEDPARM(value);
     if (masscan->echo) {
         return 0;
     }
@@ -1221,6 +1237,7 @@ static int SET_output_show_open(struct Masscan *masscan, const char *name, const
 }
 static int SET_pcap_filename(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->pcap_filename && masscan->pcap_filename[0])
             fprintf(masscan->echo, "pcap-filename = %s\n", masscan->pcap_filename);
@@ -1233,6 +1250,8 @@ static int SET_pcap_filename(struct Masscan *masscan, const char *name, const ch
 
 static int SET_randomize_hosts(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
+    UNUSEDPARM(value);
     if (masscan->echo) {
         //fprintf(masscan->echo, "randomize-hosts = true\n");
         return 0;
@@ -1282,6 +1301,7 @@ static int SET_rate(struct Masscan *masscan, const char *name, const char *value
 
 static int SET_resume_count(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->resume.count || masscan->echo_all) {
             fprintf(masscan->echo, "resume-count = %" PRIu64 "\n", masscan->resume.count);
@@ -1294,6 +1314,7 @@ static int SET_resume_count(struct Masscan *masscan, const char *name, const cha
 
 static int SET_resume_index(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->resume.index  || masscan->echo_all) {
             fprintf(masscan->echo, "\n# resume information\n");
@@ -1309,6 +1330,7 @@ static int SET_retries(struct Masscan *masscan, const char *name, const char *va
 {
     uint64_t x;
     
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->retries || masscan->echo_all)
             fprintf(masscan->echo, "retries = %u\n", masscan->retries);
@@ -1326,6 +1348,7 @@ static int SET_retries(struct Masscan *masscan, const char *name, const char *va
 
 static int SET_rotate_time(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->output.rotate.timeout || masscan->echo_all)
             fprintf(masscan->echo, "rotate = %u\n", masscan->output.rotate.timeout);
@@ -1337,6 +1360,7 @@ static int SET_rotate_time(struct Masscan *masscan, const char *name, const char
 static int SET_rotate_directory(struct Masscan *masscan, const char *name, const char *value)
 {
     char *p;
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (memcmp(masscan->output.rotate.directory, ".",2) != 0 || masscan->echo_all) {
             fprintf(masscan->echo, "rotate-dir = %s\n", masscan->output.rotate.directory);
@@ -1354,6 +1378,7 @@ static int SET_rotate_directory(struct Masscan *masscan, const char *name, const
 }
 static int SET_rotate_offset(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     /* Time offset, otherwise output files are aligned to nearest time
      * interval, e.g. at the start of the hour for "hourly" */
     if (masscan->echo) {
@@ -1366,6 +1391,7 @@ static int SET_rotate_offset(struct Masscan *masscan, const char *name, const ch
 }
 static int SET_rotate_filesize(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if (masscan->output.rotate.filesize || masscan->echo_all)
             fprintf(masscan->echo, "rotate-size = %" PRIu64 "\n", masscan->output.rotate.filesize);
@@ -1380,6 +1406,7 @@ static int SET_rotate_filesize(struct Masscan *masscan, const char *name, const
 
 static int SET_seed(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
     if (masscan->echo) {
         fprintf(masscan->echo, "seed = %" PRIu64 "\n", masscan->seed);
         return 0;
@@ -1393,6 +1420,8 @@ static int SET_seed(struct Masscan *masscan, const char *name, const char *value
 
 static int SET_space(struct Masscan *masscan, const char *name, const char *value)
 {
+    UNUSEDPARM(name);
+    UNUSEDPARM(value);
     if (masscan->echo) {
         fprintf(masscan->echo, "\n");
         return 0;
@@ -1405,6 +1434,7 @@ static int SET_shard(struct Masscan *masscan, const char *name, const char *valu
     unsigned one = 0;
     unsigned of = 0;
 
+    UNUSEDPARM(name);
     if (masscan->echo) {
         if ((masscan->shard.one != 1 && masscan->shard.of != 1)  || masscan->echo_all)
             fprintf(masscan->echo, "shard = %u/%u\n", masscan->shard.one, masscan->shard.of);
diff --git a/src/proto-interactive.c b/src/proto-interactive.c
index 8a5bb3efbbdbabdcd347c92a5527e9d66b4300c3..f0431bbc5e65073741efceb2ab80515c711f3d0a 100644
--- a/src/proto-interactive.c
+++ b/src/proto-interactive.c
@@ -1,4 +1,5 @@
 #include "proto-interactive.h"
+#include "unusedparm.h"
 #include <stdlib.h>
 
 /*
@@ -9,6 +10,10 @@
 unsigned char *
 tcp_transmit_alloc(struct InteractiveData *more, size_t length)
 {
+    /* Note using this parameter yet, but in the future, we are going to have
+     * memory pools instead of heap malloc(), which will use this parameter */
+    UNUSEDPARM(more);
+
     return malloc(length);
 }
 
diff --git a/src/proto-memcached.c b/src/proto-memcached.c
index 44575c8c8786c771f6d2475af215fcaf9c104c02..22727d1b36bfaa9acf25ee920841a646b641b4cf 100644
--- a/src/proto-memcached.c
+++ b/src/proto-memcached.c
@@ -154,7 +154,7 @@ memcached_tcp_parse(
 
             /* We've reached the end of input */
             case 3:
-                i = length;
+                i = (unsigned)length;
                 break;
 
             /* Ignore until end of line */
diff --git a/src/proto-ntlmssp.c b/src/proto-ntlmssp.c
index f00a09b2615e4c1d6306e1c96f56043d2fdf8fb4..380ab45daaf392d617978b10672da75e4b0c2b57 100644
--- a/src/proto-ntlmssp.c
+++ b/src/proto-ntlmssp.c
@@ -126,7 +126,7 @@ ntlmssp_decode(struct NtlmsspDecode *x,
         return;
     } else if (x->offset) {
         memcpy(x->buf + x->offset, px, length);
-        x->offset += length;
+        x->offset += (unsigned)length;
         if (x->offset < x->length)
             return;
         
@@ -221,7 +221,7 @@ ntlmssp_decode(struct NtlmsspDecode *x,
             default:
                 break;
         }
-        i += len;
+        i += (unsigned)len;
     }
 
     
diff --git a/src/proto-smb.c b/src/proto-smb.c
index 7e3edd279df99049c5856c278c9dfaa58e912c48..e8ebfe5651fe951f3fca82236fde92ca659095e4 100644
--- a/src/proto-smb.c
+++ b/src/proto-smb.c
@@ -8,6 +8,7 @@
 #include "masscan-app.h"
 #include "siphash24.h"
 #include "string_s.h"
+#include "unusedparm.h"
 #include <string.h>
 #include <ctype.h>
 #include <assert.h>
@@ -429,8 +430,8 @@ smb1_parse_negotiate1(struct SMBSTUFF *smb, const unsigned char *px, size_t offs
             break;
     }
     
-    smb->hdr.smb1.byte_state = state;
-    smb->hdr.smb1.byte_offset += (offset - original_offset);
+    smb->hdr.smb1.byte_state = (unsigned short)state;
+    smb->hdr.smb1.byte_offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -605,8 +606,8 @@ smb1_parse_setup1(struct SMBSTUFF *smb, const unsigned char *px, size_t offset,
         }
     }
     
-    smb->hdr.smb1.byte_state = state;
-    smb->hdr.smb1.byte_offset += (offset - original_offset);
+    smb->hdr.smb1.byte_state = (unsigned short)state;
+    smb->hdr.smb1.byte_offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 /*****************************************************************************
@@ -660,7 +661,7 @@ smb1_parse_setup2(struct SMBSTUFF *smb, const unsigned char *px, size_t offset,
                     new_max = offset + smb->parms.setup.BlobLength - smb->parms.setup.BlobOffset;
                 spnego_decode(&smb->spnego, px+offset, new_max-offset, banout);
                 
-                smb->parms.setup.BlobOffset += (new_max-offset);
+                smb->parms.setup.BlobOffset += (uint16_t)(new_max-offset);
                 offset = new_max;
                 if (smb->parms.setup.BlobLength - smb->parms.setup.BlobOffset == 0) {
                     offset--;
@@ -808,8 +809,8 @@ smb1_parse_setup2(struct SMBSTUFF *smb, const unsigned char *px, size_t offset,
         }
     }
     
-    smb->hdr.smb1.byte_state = state;
-    smb->hdr.smb1.byte_offset += (offset - original_offset);
+    smb->hdr.smb1.byte_state = (unsigned short)state;
+    smb->hdr.smb1.byte_offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -821,7 +822,8 @@ smb1_parse_negotiate2(struct SMBSTUFF *smb, const unsigned char *px, size_t offs
     size_t original_offset = offset;
     unsigned state = smb->hdr.smb1.byte_state;
     
-    
+    UNUSEDPARM(banout);
+
     if (max > offset + (smb->hdr.smb1.byte_count - smb->hdr.smb1.byte_offset))
         max = offset + (smb->hdr.smb1.byte_count - smb->hdr.smb1.byte_offset);
     
@@ -834,8 +836,8 @@ smb1_parse_negotiate2(struct SMBSTUFF *smb, const unsigned char *px, size_t offs
                 break;
         }
     
-    smb->hdr.smb1.byte_state = state;
-    smb->hdr.smb1.byte_offset += (offset - original_offset);
+    smb->hdr.smb1.byte_state = (unsigned short)state;
+    smb->hdr.smb1.byte_offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -851,6 +853,9 @@ smb2_parse_response(struct SMBSTUFF *smb, const unsigned char *px, size_t offset
     size_t original_offset = offset;
     unsigned state = smb->hdr.smb2.state;
     
+    UNUSEDPARM(banout);
+    UNUSEDPARM(px);
+
     if (max > offset + (smb->hdr.smb2.struct_length - smb->hdr.smb2.offset))
         max = offset + (smb->hdr.smb2.struct_length - smb->hdr.smb2.offset);
     
@@ -860,8 +865,8 @@ smb2_parse_response(struct SMBSTUFF *smb, const unsigned char *px, size_t offset
                 break;
         }
     
-    smb->hdr.smb2.state = state;
-    smb->hdr.smb2.offset += (offset - original_offset);
+    smb->hdr.smb2.state = (unsigned short)state;
+    smb->hdr.smb2.offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -1030,8 +1035,8 @@ smb2_parse_negotiate(struct SMBSTUFF *smb, const unsigned char *px, size_t offse
                 break;
         }
     
-    smb->hdr.smb2.state = state;
-    smb->hdr.smb2.offset += (offset - original_offset);
+    smb->hdr.smb2.state = (unsigned short)state;
+    smb->hdr.smb2.offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -1058,7 +1063,9 @@ smb2_parse_setup(struct SMBSTUFF *smb, const unsigned char *px, size_t offset, s
         N_BLOB_LENGTH1, N_BLOB_LENGTH2,
 
     };
-    
+
+    UNUSEDPARM(banout);
+
     if (max > offset + (smb->hdr.smb2.struct_length - smb->hdr.smb2.offset))
         max = offset + (smb->hdr.smb2.struct_length - smb->hdr.smb2.offset);
     
@@ -1087,8 +1094,8 @@ smb2_parse_setup(struct SMBSTUFF *smb, const unsigned char *px, size_t offset, s
                 break;
         }
     
-    smb->hdr.smb2.state = state;
-    smb->hdr.smb2.offset += (offset - original_offset);
+    smb->hdr.smb2.state = (unsigned short)state;
+    smb->hdr.smb2.offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -1209,8 +1216,8 @@ smb2_parse_header(struct SMBSTUFF *smb, const unsigned char *px, size_t offset,
                 break;
         }
     
-    smb->hdr.smb2.state = state;
-    smb->hdr.smb2.offset += (offset - original_offset);
+    smb->hdr.smb2.state = (unsigned short)state;
+    smb->hdr.smb2.offset += (unsigned short)(offset - original_offset);
     return offset - original_offset;
 }
 
@@ -1613,7 +1620,7 @@ smb_parse_smb(struct SMBSTUFF *smb, const unsigned char *px, size_t max, struct
                 new_max = i + smb->hdr.smb2.blob_length;
             spnego_decode(&smb->spnego, px+i, new_max-i, banout);
             
-            smb->hdr.smb2.blob_length -= (new_max-i);
+            smb->hdr.smb2.blob_length -= (unsigned short)(new_max-i);
             i = new_max;
             if (smb->hdr.smb2.blob_length == 0) {
                 i--;
@@ -1631,7 +1638,7 @@ smb_parse_smb(struct SMBSTUFF *smb, const unsigned char *px, size_t max, struct
             break;
     }
 
-    smb->nbt_length -= i;
+    smb->nbt_length -= (unsigned)i;
     smb->nbt_state = state;
     return i;
 }
@@ -1672,7 +1679,10 @@ smb_parse_record(
         NBT_DRAIN,
         NBT_UNKNOWN,
     };
-    
+
+    UNUSEDPARM(banner1_private);
+    UNUSEDPARM(banner1);
+
     for (i=0; i<max; i++)
         switch (state) {
             case NBT_TYPE:
@@ -1798,7 +1808,7 @@ negot_add_dialect(unsigned char *buf, size_t sizeof_buf, const char *dialect)
     size_t nbt_length;
     size_t dialect_length = strlen(dialect) + 1;
     size_t word_count;
-    size_t byte_count;
+    //size_t byte_count;
     
     /* Parse NetBIOS header */
     if (sizeof_buf < 4 || sizeof_buf + 4 < dialect_length)
@@ -1817,7 +1827,7 @@ negot_add_dialect(unsigned char *buf, size_t sizeof_buf, const char *dialect)
     word_count = buf[36];
     if (word_count != 0)
         return -1;
-    byte_count = buf[37] | buf[38]<<8;
+    //byte_count = buf[37] | buf[38]<<8;
     
     
     
@@ -2039,8 +2049,8 @@ smb_selftest(void)
             }
         }
     }
-#endif
     return 0;
+#endif
 }
 
 /*****************************************************************************
diff --git a/src/proto-snmp.c b/src/proto-snmp.c
index fd4ae9e8c274bb8514cbc018364303d08b72a551..32cc5be94c59c3733c442d113fd9d20ca8ca1360 100644
--- a/src/proto-snmp.c
+++ b/src/proto-snmp.c
@@ -392,7 +392,7 @@ snmp_parse(const unsigned char *px, uint64_t length,
             if (var_tag == 5)
                 continue; /* null */
 
-            snmp_banner(oid, oid_length, var_tag, var, var_length, banout);
+            snmp_banner(oid, (size_t)oid_length, var_tag, var, (size_t)var_length, banout);
         }
     }
 }
@@ -416,7 +416,7 @@ snmp_set_cookie(unsigned char *px, size_t length, uint64_t seqno)
     /* length */
     outer_length = asn1_length(px, length, &offset);
     if (length > outer_length + offset)
-        length = outer_length + offset;
+        length = (size_t)(outer_length + offset);
 
     /* Version */
     version = asn1_integer(px, length, &offset);
@@ -434,7 +434,7 @@ snmp_set_cookie(unsigned char *px, size_t length, uint64_t seqno)
         return 0;
     outer_length = asn1_length(px, length, &offset);
     if (length > outer_length + offset)
-        length = outer_length + offset;
+        length = (size_t)(outer_length + offset);
 
     /* Request ID */
     asn1_tag(px, length, &offset);
diff --git a/src/proto-udp.c b/src/proto-udp.c
index eac40e9d541445137c55b7eed570e7a144c00eed..9f5365cba579df54891871b15cc176a24b1271a0 100644
--- a/src/proto-udp.c
+++ b/src/proto-udp.c
@@ -33,6 +33,8 @@ default_udp_parse(struct Output *out, time_t timestamp,
     unsigned port_them = parsed->port_src;
     //unsigned port_me = parsed->port_dst;
     
+    UNUSEDPARM(entropy);
+
     ip_them = parsed->ip_src[0]<<24 | parsed->ip_src[1]<<16 | parsed->ip_src[2]<< 8 | parsed->ip_src[3]<<0;
     //ip_me = parsed->ip_dst[0]<<24 | parsed->ip_dst[1]<<16 | parsed->ip_dst[2]<< 8 | parsed->ip_dst[3]<<0;
 
diff --git a/src/proto-vnc.c b/src/proto-vnc.c
index 70ee1c34bf4e34e242122dcb74122583355ad717..57017029da32d4443545a3bcffbebf2a7a6fb55c 100644
--- a/src/proto-vnc.c
+++ b/src/proto-vnc.c
@@ -108,7 +108,7 @@ vnc_parse(  const struct Banner1 *banner1,
         RFB3_7_SECURITYTYPES=100,
         RFB_SERVERINIT=200,
         RFB_SECURITYRESULT=300,
-        RFB_DONE=0xffffffff,
+        RFB_DONE=0x7fffffff,
     };
     
     UNUSEDPARM(banner1_private);
diff --git a/src/proto-x509.c b/src/proto-x509.c
index 6d991dbc911f08a58d2b602ac1d9f2f313a355c1..f8f4658f0a7beeb7a4ad1ee228792dff6149417f 100644
--- a/src/proto-x509.c
+++ b/src/proto-x509.c
@@ -1292,12 +1292,12 @@ spnego_decode(struct SpnegoDecode *spnego,
             {
                 size_t new_max = length - i;
                 
-                if (new_max > x->stack.remainings[0] + 1)
+                if (new_max > x->stack.remainings[0] + 1U)
                     new_max = x->stack.remainings[0] + 1;
                 
                 ntlmssp_decode(&spnego->ntlmssp, px+i, new_max, banout);
                 
-                x->stack.remainings[0] -= (new_max - 1);
+                x->stack.remainings[0] -= (unsigned short)(new_max - 1);
                 if (x->stack.remainings[0] == 0) {
                     if (spnego->ntlmssp.buf)
                         free(spnego->ntlmssp.buf);
diff --git a/src/rawsock.c b/src/rawsock.c
index 38e900f64196756a71c75775245e73f5c72e46e0..93f46aaee9bdc226b0928c266fc9544e99ceb541 100644
--- a/src/rawsock.c
+++ b/src/rawsock.c
@@ -14,7 +14,7 @@
 #include "main-globals.h"
 
 #include "rawsock-pcap.h"
-
+#include "unusedparm.h"
 #include <assert.h>
 #include <ctype.h>
 
@@ -478,6 +478,7 @@ rawsock_win_name(const char *ifname)
 void
 rawsock_ignore_transmits(struct Adapter *adapter, const unsigned char *adapter_mac)
 {
+    UNUSEDPARM(adapter_mac);
     if (adapter->ring) {
         /* PORTABILITY: don't do anything for PF_RING, because it's
          * actually done when we create the adapter, because we can't
@@ -626,6 +627,10 @@ rawsock_init_adapter(const char *adapter_name,
     struct Adapter *adapter;
     char errbuf[PCAP_ERRBUF_SIZE];
 
+    /* BPF filter not supported on some platforms, so ignore this compiler
+     * warning when unused */
+    UNUSEDPARM(bpf_filter);
+
     adapter = (struct Adapter *)malloc(sizeof(*adapter));
     if (adapter == NULL)
         exit(1);
diff --git a/vs10/masscan.vcxproj b/vs10/masscan.vcxproj
index e267735ae28080df99c738d3d64f9c2a301c1d28..2e9010a59dbdf53a9b94889463a57abd1800431b 100644
--- a/vs10/masscan.vcxproj
+++ b/vs10/masscan.vcxproj
@@ -53,6 +53,7 @@
     <ClCompile Include="..\src\proto-interactive.c" />
     <ClCompile Include="..\src\proto-memcached.c" />
     <ClCompile Include="..\src\proto-netbios.c" />
+    <ClCompile Include="..\src\proto-ntlmssp.c" />
     <ClCompile Include="..\src\proto-ntp.c" />
     <ClCompile Include="..\src\proto-pop3.c" />
     <ClCompile Include="..\src\proto-sctp.c" />
@@ -143,6 +144,7 @@
     <ClInclude Include="..\src\proto-interactive.h" />
     <ClInclude Include="..\src\proto-memcached.h" />
     <ClInclude Include="..\src\proto-netbios.h" />
+    <ClInclude Include="..\src\proto-ntlmssp.h" />
     <ClInclude Include="..\src\proto-ntp.h" />
     <ClInclude Include="..\src\proto-pop3.h" />
     <ClInclude Include="..\src\proto-preprocess.h" />
@@ -238,7 +240,7 @@
     <LinkIncremental>true</LinkIncremental>
     <IntDir>$(SolutionDir)\..\tmp\</IntDir>
     <OutDir>$(SolutionDir)\..\bin\</OutDir>
-    <RunCodeAnalysis>true</RunCodeAnalysis>
+    <RunCodeAnalysis>false</RunCodeAnalysis>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
@@ -276,7 +278,7 @@
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <EnablePREfast>true</EnablePREfast>
+      <EnablePREfast>false</EnablePREfast>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
diff --git a/vs10/masscan.vcxproj.filters b/vs10/masscan.vcxproj.filters
index d0bbc4d6f2af7b6fa159a648ddbc0c8fc7a9a96f..da1118c2d77ef22cca81b407331e0d0b304f8992 100644
--- a/vs10/masscan.vcxproj.filters
+++ b/vs10/masscan.vcxproj.filters
@@ -294,6 +294,9 @@
     <ClCompile Include="..\src\proto-smb.c">
       <Filter>Source Files\proto</Filter>
     </ClCompile>
+    <ClCompile Include="..\src\proto-ntlmssp.c">
+      <Filter>Source Files\proto</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\src\proto-arp.h">
@@ -503,6 +506,9 @@
     <ClInclude Include="..\src\proto-smb.h">
       <Filter>Source Files\proto</Filter>
     </ClInclude>
+    <ClInclude Include="..\src\proto-ntlmssp.h">
+      <Filter>Source Files\proto</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\README.md" />