diff --git a/lib/IDS/DeReKoVecs/derekovecs-server.c b/lib/IDS/DeReKoVecs/derekovecs-server.c
index 2234c66..286c7ca 100644
--- a/lib/IDS/DeReKoVecs/derekovecs-server.c
+++ b/lib/IDS/DeReKoVecs/derekovecs-server.c
@@ -509,7 +509,7 @@
       for (b = 0; b < size; b++) {
         av_push(vector, newSVnv(M[b + j * size]));
       }
-      av_push(result, newRV_noinc(vector));
+      av_push(result, newRV_noinc((SV *)vector));
     }
   }
   return result;
@@ -639,7 +639,7 @@
   }
 
   result = malloc(N * max_w);
-  char *p = result;
+  char *p = (char *) result;
   *p++ = '[';
   *p = 0;
   for (a = 0; a < N; a++) {
@@ -789,14 +789,14 @@
   printf("Syn threads joint\n");
   fflush(stdout);
   result = malloc(maxPerPos * 80 * syn_threads);
-  char *p = result;
+  char *p = (char *) result;
   *p = 0;
   for (a = syn_threads - 1; a >= 0; a--) {
     for (b = 0; b < syn_nbs[a]->length; b++) {
       p += sprintf(p, "%ld\t%s\t%f\n", syn_nbs[a]->best[b].position, &vocab[syn_nbs[a]->best[b].wordi * max_w], syn_nbs[a]->best[b].activation);
     }
   }
-  return (result);
+  return ((char *)result);
 }
 
 SV *get_neighbours(char *st1, int N, int sort_by, int search_backw, long cutoff, int dedupe, int no_similar_profiles) {
