diff --git a/w2v-server.pl b/w2v-server.pl
index 6cb8a7e..d0084fb 100755
--- a/w2v-server.pl
+++ b/w2v-server.pl
@@ -879,9 +879,7 @@
     goto end;
 
 	old_words = cutoff;
-  if(merge_words > 0)
-		cutoff = merge_words * 1.25;  /* HACK */
-	slice = (para_threads? cutoff / para_threads : 0);
+	slice = (para_threads? cutoff / para_threads * (merge_words > 0? 2 : 1)  : 0);
 
 	a = posix_memalign((void **) &target_sums, 128, cutoff * sizeof(float));
   for(a = 0; a < cutoff; a++)
@@ -895,8 +893,14 @@
 		pars[a].wl = wl;
 		pars[a].N = N;
     pars[a].best = &best[N*a];
-		pars[a].from = a*slice;
-		pars[a].upto = ((a+1)*slice > cutoff? cutoff:(a+1)*slice);
+    if(merge_words == 0 || a < para_threads / 2) {
+      pars[a].from = a*slice;
+      pars[a].upto = ((a+1)*slice > cutoff? cutoff : (a+1) * slice);
+    } else {
+      pars[a].from = merge_words + (a - para_threads / 2) * slice;
+      pars[a].upto = merge_words + ((a - para_threads / 2 + 1)*slice > cutoff? cutoff : (a - para_threads / 2 + 1) *slice);
+    }
+    printf("From: %ld, Upto: %ld\n",  pars[a].from, pars[a].upto);
 		pthread_create(&pt[a], NULL, _get_neighbours, (void *) &pars[a]);
 	}
   if(M2) {
@@ -943,6 +947,7 @@
       if(filtered)
         continue;
     }
+/*
     if(merge_words > 0) {
         if(c >= merge_words) {
             if(l1_words > N / 2)
@@ -956,9 +961,9 @@
                 l2_words++;
         }
     }
+*/
     printf("%s l1:%d l2:%d i:%d a:%ld\n", &vocab[c * max_w], l1_words, l2_words, i, a);
     fflush(stdout);
- 
     HV* hash = newHV();
     SV* word = newSVpvf(&vocab[c * max_w], 0);
 		chosen[i] = c;
