diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c
index ae9d6f3..6d18abb 100644
--- a/src/core/ngx_slab.c
+++ b/src/core/ngx_slab.c
@@ -440,7 +440,8 @@
         n = ((uintptr_t) p & (ngx_pagesize - 1)) >> shift;
         m = (uintptr_t) 1 << (n & (sizeof(uintptr_t) * 8 - 1));
         n /= (sizeof(uintptr_t) * 8);
-        bitmap = (uintptr_t *) ((uintptr_t) p & ~(ngx_pagesize - 1));
+        bitmap = (uintptr_t *)
+                             ((uintptr_t) p & ~((uintptr_t) ngx_pagesize - 1));
 
         if (bitmap[n] & m) {
 
diff --git a/src/http/modules/ngx_http_map_module.c b/src/http/modules/ngx_http_map_module.c
index 13c8b97..3245e04 100644
--- a/src/http/modules/ngx_http_map_module.c
+++ b/src/http/modules/ngx_http_map_module.c
@@ -131,7 +131,7 @@
     }
 
     if (!value->valid) {
-        value = ngx_http_get_flushed_variable(r, (ngx_uint_t) value->data);
+        value = ngx_http_get_flushed_variable(r, (uintptr_t) value->data);
 
         if (value == NULL || value->not_found) {
             value = &ngx_http_variable_null_value;
@@ -414,7 +414,7 @@
         var = ctx->var_values.elts;
 
         for (i = 0; i < ctx->var_values.nelts; i++) {
-            if (index == (ngx_int_t) var[i].data) {
+            if (index == (intptr_t) var[i].data) {
                 var = &var[i];
                 goto found;
             }
@@ -429,7 +429,7 @@
         var->no_cacheable = 0;
         var->not_found = 0;
         var->len = 0;
-        var->data = (u_char *) index;
+        var->data = (u_char *) (intptr_t) index;
 
         goto found;
     }
diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c
index 90e32e8..bf4d1fe 100644
--- a/src/http/modules/perl/ngx_http_perl_module.c
+++ b/src/http/modules/perl/ngx_http_perl_module.c
@@ -421,7 +421,7 @@
             return NGX_ERROR;
         }
 
-        asv[0] = (SV *) i;
+        asv[0] = (SV *) (uintptr_t) i;
 
         for (i = 0; args[i]; i++) {
             asv[i + 1] = newSVpvn((char *) args[i]->data, args[i]->len);
@@ -692,7 +692,7 @@
     if (args) {
         EXTEND(sp, (intptr_t) args[0]);
 
-        for (i = 1; i <= (ngx_uint_t) args[0]; i++) {
+        for (i = 1; i <= (uintptr_t) args[0]; i++) {
             PUSHs(sv_2mortal(args[i]));
         }
     }
