Index: src/smallobject.c
===================================================================
--- src/smallobject.c	(revision 7818)
+++ src/smallobject.c	(working copy)
@@ -418,7 +418,7 @@
                 GC_DEBUG_REPLENISH_LEVEL_FACTOR);
     }
     else {
-        pool->objects_per_alloc = (UINTVAL) pool->objects_per_alloc *
+        pool->objects_per_alloc = (size_t) pool->objects_per_alloc *
             UNITS_PER_ALLOC_GROWTH_FACTOR;
         pool->replenish_level =
                 (size_t)(pool->total_objects * REPLENISH_LEVEL_FACTOR);
Index: src/utils.c
===================================================================
--- src/utils.c	(revision 7818)
+++ src/utils.c	(working copy)
@@ -364,8 +364,8 @@
 _srand48(long seed)
 {
     last_rand[0] = SEED_LO;
-    last_rand[1] = seed & 0xffff;
-    last_rand[2] = (seed >> 16) & 0xffff;
+    last_rand[1] = (unsigned short)seed & 0xffff;
+    last_rand[2] = (unsigned short)(seed >> 16) & 0xffff;
     /*
      * reinit a, c if changed by lcong48()
      */
@@ -464,7 +464,7 @@
 INTVAL
 Parrot_range_rand(INTVAL from, INTVAL to, INTVAL how_random)
 {
-    return (INTVAL) from + ((double)(to - from)) * Parrot_float_rand(how_random);
+    return (INTVAL)( from + ((double)(to - from)) * Parrot_float_rand(how_random) );
 }
 
 /*
Index: src/gc_ims.c
===================================================================
--- src/gc_ims.c	(revision 7818)
+++ src/gc_ims.c	(working copy)
@@ -613,7 +613,7 @@
     }
     else
         work_factor = 1.0;
-    todo = (double)g_ims->alloc_trigger * g_ims->throttle * work_factor;
+    todo = (size_t)g_ims->alloc_trigger * g_ims->throttle * work_factor;
     assert(arena_base->lazy_dod == 0);
     Parrot_dod_trace_children(interpreter, todo);
     /*
Index: src/events.c
===================================================================
--- src/events.c	(revision 7818)
+++ src/events.c	(working copy)
@@ -225,7 +225,10 @@
 static void
 init_events_first(Parrot_Interp interpreter)
 {
-    Parrot_thread    ev_handle, io_handle;
+    Parrot_thread    ev_handle;
+#ifndef WIN32
+    Parrot_thread    io_handle;
+#endif
 
     /*
      * be sure all init is done only once
@@ -916,7 +919,7 @@
             event = (parrot_event* )entry->data;
             when = event->u.timer_event.abs_time;
             abs_time.tv_sec = (time_t) when;
-            abs_time.tv_nsec = (when - abs_time.tv_sec) *
+            abs_time.tv_nsec = (long)(when - abs_time.tv_sec) *
                 (1000L*1000L*1000L);
             queue_timedwait(event_q, &abs_time);
         }
Index: src/exec.c
===================================================================
--- src/exec.c	(revision 7818)
+++ src/exec.c	(working copy)
@@ -60,8 +60,10 @@
 Parrot_exec(Interp *interpreter, opcode_t *pc,
         opcode_t *code_start, opcode_t *code_end)
 {
-    int i, j, *k;
-    char *cp, *nptr;
+#ifdef JIT_CGP
+    int i, j *k;
+#endif
+    char *nptr;
     const char *output;
     long bhs;
     Parrot_exec_objfile_t *obj;
Index: src/interpreter.c
===================================================================
--- src/interpreter.c	(revision 7818)
+++ src/interpreter.c	(working copy)
@@ -197,7 +197,7 @@
             pi->n_branches = 0;
         }
         else if (pi->n_branches >= pi->n_allocated) {
-            pi->n_allocated = (UINTVAL) pi->n_allocated * 1.5;
+            pi->n_allocated = (size_t) pi->n_allocated * (size_t)1.5;
             pi->branches = mem_sys_realloc( pi->branches,
                     sizeof(Prederef_branch) * pi->n_allocated);
         }
Index: src/mmd.c
===================================================================
--- src/mmd.c	(revision 7818)
+++ src/mmd.c	(working copy)
@@ -1047,8 +1047,8 @@
 static INTVAL
 distance_cmp(Interp *interpreter, INTVAL a, INTVAL b)
 {
-    short da = a & 0xffff;
-    short db = b & 0xffff;
+    short da = (short)a & 0xffff;
+    short db = (short)b & 0xffff;
     return da > db ? 1 : da < db ? -1 : 0;
 }
 
Index: src/spf_render.c
===================================================================
--- src/spf_render.c	(revision 7818)
+++ src/spf_render.c	(working copy)
@@ -473,7 +473,7 @@
                         case '*':
                             info.flags |= FLAG_WIDTH;
                             info.width *= 10;
-                            info.width += obj->getint(interpreter,
+                            info.width += (UINTVAL)obj->getint(interpreter,
                                                       SIZE_XVAL, obj);
                             continue;
 
@@ -506,7 +506,7 @@
                         case '*':
                             info.flags |= FLAG_PREC;
                             info.prec *= 10;
-                            info.prec += obj->getint(interpreter,
+                            info.prec += (UINTVAL)obj->getint(interpreter,
                                                      SIZE_XVAL, obj);
                             continue;
 
