break;
                }
                j = (arg_type & ARG_NONZERO) ? 1 : 0;
-               if(iarg < j && larg < j && barg < j ) {
-                       larg = larg ? larg : (barg ? barg : iarg);
+               if(iarg < j && larg < j && barg < (unsigned)j ) {
+                       larg = larg ? larg : (barg ? (long)barg : iarg);
                        snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> invalid value",
                                c->argv[0] );
                        Debug(LDAP_DEBUG_ANY|LDAP_DEBUG_NONE, "%s: %s\n",
                                rc = 1;
                                goto done;
 
-                       } else if ( rc == ARG_BAD_CONF ) {
+                       } else if ( (unsigned long)rc == ARG_BAD_CONF ) {
                                rc = 1;
                                goto done;
                        }
                                slap_verbmasks *aux = (slap_verbmasks *)tab->aux;
 
                                for ( i = 0; !BER_BVISNULL( &aux[i].word ); i++ ) {
-                                       if ( *iptr == aux[i].mask ) {
+                                       if ( (slap_mask_t)*iptr == aux[i].mask ) {
                                                *ptr++ = ' ';
                                                ptr = lutil_strcopy( ptr, tab->key.bv_val );
                                                ptr = lutil_strcopy( ptr, aux[i].word.bv_val );
        }
        ldap_pvt_tls_get_option( ld, opt, &ival );
        for (i=0; !BER_BVISNULL(&keys[i].word); i++) {
-               if (keys[i].mask == ival) {
+               if (keys[i].mask == (slap_mask_t)ival) {
                        *val = ch_strdup( keys[i].word.bv_val );
                        return 0;
                }