diff --git a/psrdada_cpp/effelsberg/edd/src/EDDPolnMerge10to8_1pol.cpp b/psrdada_cpp/effelsberg/edd/src/EDDPolnMerge10to8_1pol.cpp
index ccfa356a6dcf540f2e6f180418fc19eb27b93fa6..fc166d63cec76ff7ae9db1b3c9f4bd6eb236eab6 100644
--- a/psrdada_cpp/effelsberg/edd/src/EDDPolnMerge10to8_1pol.cpp
+++ b/psrdada_cpp/effelsberg/edd/src/EDDPolnMerge10to8_1pol.cpp
@@ -22,58 +22,58 @@ uint64_t *unpack5(uint64_t *qword, uint8_t *out)
     val = be64toh(*qword);
     //printf("0x%016lX\n",val);
     qword++;
-    out[0] = ((int64_t)(( 0xFFC0000000000000 & val) <<  0) >> 54) & 0xFF;
-    out[1] = ((int64_t)(( 0x003FF00000000000 & val) << 10) >> 54) & 0xFF;
-    out[2] = ((int64_t)(( 0x00000FFC00000000 & val) << 20) >> 54) & 0xFF;
-    out[3] = ((int64_t)(( 0x00000003FF000000 & val) << 30) >> 54) & 0xFF;
-    out[4] = ((int64_t)(( 0x0000000000FFC000 & val) << 40) >> 54) & 0xFF;
-    out[5] = ((int64_t)(( 0x0000000000003FF0 & val) << 50) >> 54) & 0xFF;
+    out[0] = (int8_t)(((int64_t)(( 0xFFC0000000000000 & val) <<  0) >> 54) >> 2);
+    out[1] = (int8_t)(((int64_t)(( 0x003FF00000000000 & val) << 10) >> 54) >> 2);
+    out[2] = (int8_t)(((int64_t)(( 0x00000FFC00000000 & val) << 20) >> 54) >> 2);
+    out[3] = (int8_t)(((int64_t)(( 0x00000003FF000000 & val) << 30) >> 54) >> 2);
+    out[4] = (int8_t)(((int64_t)(( 0x0000000000FFC000 & val) << 40) >> 54) >> 2);
+    out[5] = (int8_t)(((int64_t)(( 0x0000000000003FF0 & val) << 50) >> 54) >> 2);
     rest =          ( 0x000000000000000F & val) << 60; // 4 bits rest.
     // 2nd:
     val = be64toh(*qword);
     //printf("0x%016lX\n",val);
     qword++;
-    out[6] = ((int64_t)(((0xFC00000000000000 & val) >> 4) | rest) >> 54) & 0xFF;
-    out[7] = ((int64_t)(( 0x03FF000000000000 & val) <<  6) >> 54) & 0xFF;
-    out[8] = ((int64_t)(( 0x0000FFC000000000 & val) << 16) >> 54) & 0xFF;
-    out[9] = ((int64_t)(( 0x0000003FF0000000 & val) << 26) >> 54) & 0xFF;
-    out[10] = ((int64_t)(( 0x000000000FFC0000 & val) << 36) >> 54) & 0xFF;
-    out[11] = ((int64_t)(( 0x000000000003FF00 & val) << 46) >> 54) & 0xFF;
+    out[6] = (int8_t)(((int64_t)(((0xFC00000000000000 & val) >> 4) | rest) >> 54) >> 2);
+    out[7] = (int8_t)(((int64_t)(( 0x03FF000000000000 & val) <<  6) >> 54) >> 2);
+    out[8] = (int8_t)(((int64_t)(( 0x0000FFC000000000 & val) << 16) >> 54) >> 2);
+    out[9] = (int8_t)(((int64_t)(( 0x0000003FF0000000 & val) << 26) >> 54) >> 2);
+    out[10] = (int8_t)(((int64_t)(( 0x000000000FFC0000 & val) << 36) >> 54) >> 2);
+    out[11] = (int8_t)(((int64_t)(( 0x000000000003FF00 & val) << 46) >> 54) >> 2);
     rest =          ( 0x00000000000000FF & val) << 56; // 8 bits rest.
     // 3rd:
     val = be64toh(*qword);
     //printf("0x%016lX\n",val);
     qword++;
-    out[12] = ((int64_t)(((0xC000000000000000 & val) >> 8) | rest) >> 54) & 0xFF;
-    out[13] = ((int64_t)(( 0x3FF0000000000000 & val) <<  2) >> 54) & 0xFF;
-    out[14] = ((int64_t)(( 0x000FFC0000000000 & val) << 12) >> 54) & 0xFF;
-    out[15] = ((int64_t)(( 0x000003FF00000000 & val) << 22) >> 54) & 0xFF;
-    out[16] = ((int64_t)(( 0x00000000FFC00000 & val) << 32) >> 54) & 0xFF;
-    out[17] = ((int64_t)(( 0x00000000003FF000 & val) << 42) >> 54) & 0xFF;
-    out[18] = ((int64_t)(( 0x0000000000000FFC & val) << 52) >> 54) & 0xFF;
+    out[12] = (int8_t)(((int64_t)(((0xC000000000000000 & val) >> 8) | rest) >> 54) >> 2);
+    out[13] = (int8_t)(((int64_t)(( 0x3FF0000000000000 & val) <<  2) >> 54) >> 2);
+    out[14] = (int8_t)(((int64_t)(( 0x000FFC0000000000 & val) << 12) >> 54) >> 2);
+    out[15] = (int8_t)(((int64_t)(( 0x000003FF00000000 & val) << 22) >> 54) >> 2);
+    out[16] = (int8_t)(((int64_t)(( 0x00000000FFC00000 & val) << 32) >> 54) >> 2);
+    out[17] = (int8_t)(((int64_t)(( 0x00000000003FF000 & val) << 42) >> 54) >> 2);
+    out[18] = (int8_t)(((int64_t)(( 0x0000000000000FFC & val) << 52) >> 54) >> 2);
     rest =          ( 0x0000000000000003 & val) << 62; // 2 bits rest.
     // 4th:
     val = be64toh(*qword);
     //printf("0x%016lX\n",val);
     qword++;
-    out[19] = ((int64_t)(((0xFF00000000000000 & val) >> 2) | rest) >> 54) & 0xFF;
-    out[20] = ((int64_t)(( 0x00FFC00000000000 & val) <<  8) >> 54) & 0xFF;
-    out[21] = ((int64_t)(( 0x00003FF000000000 & val) << 18) >> 54) & 0xFF;
-    out[22] = ((int64_t)(( 0x0000000FFC000000 & val) << 28) >> 54) & 0xFF;
-    out[23] = ((int64_t)(( 0x0000000003FF0000 & val) << 38) >> 54) & 0xFF;
-    out[24] = ((int64_t)(( 0x000000000000FFC0 & val) << 48) >> 54) & 0xFF;
+    out[19] = (int8_t)(((int64_t)(((0xFF00000000000000 & val) >> 2) | rest) >> 54) >> 2);
+    out[20] = (int8_t)(((int64_t)(( 0x00FFC00000000000 & val) <<  8) >> 54) >> 2);
+    out[21] = (int8_t)(((int64_t)(( 0x00003FF000000000 & val) << 18) >> 54) >> 2);
+    out[22] = (int8_t)(((int64_t)(( 0x0000000FFC000000 & val) << 28) >> 54) >> 2);
+    out[23] = (int8_t)(((int64_t)(( 0x0000000003FF0000 & val) << 38) >> 54) >> 2);
+    out[24] = (int8_t)(((int64_t)(( 0x000000000000FFC0 & val) << 48) >> 54) >> 2);
     rest =          ( 0x000000000000003F & val) << 58; // 6 bits rest.
     // 5th:
     val = be64toh(*qword);
     //printf("0x%016lX\n",val);
     qword++;
-    out[25] = ((int64_t)(((0xF000000000000000 & val) >> 6) | rest) >> 54) & 0xFF;
-    out[26] = ((int64_t)(( 0x0FFC000000000000 & val) <<  4) >> 54) & 0xFF;
-    out[27] = ((int64_t)(( 0x0003FF0000000000 & val) << 14) >> 54) & 0xFF;
-    out[28] = ((int64_t)(( 0x000000FFC0000000 & val) << 24) >> 54) & 0xFF;
-    out[29] = ((int64_t)(( 0x000000003FF00000 & val) << 34) >> 54) & 0xFF;
-    out[30] = ((int64_t)(( 0x00000000000FFC00 & val) << 44) >> 54) & 0xFF;
-    out[31] = ((int64_t)(( 0x00000000000003FF & val) << 54) >> 54) & 0xFF;
+    out[25] = (int8_t)(((int64_t)(((0xF000000000000000 & val) >> 6) | rest) >> 54) >> 2);
+    out[26] = (int8_t)(((int64_t)(( 0x0FFC000000000000 & val) <<  4) >> 54) >> 2);
+    out[27] = (int8_t)(((int64_t)(( 0x0003FF0000000000 & val) << 14) >> 54) >> 2);
+    out[28] = (int8_t)(((int64_t)(( 0x000000FFC0000000 & val) << 24) >> 54) >> 2);
+    out[29] = (int8_t)(((int64_t)(( 0x000000003FF00000 & val) << 34) >> 54) >> 2);
+    out[30] = (int8_t)(((int64_t)(( 0x00000000000FFC00 & val) << 44) >> 54) >> 2);
+    out[31] = (int8_t)(((int64_t)(( 0x00000000000003FF & val) << 54) >> 54) >> 2);
     rest = 0; // No rest.
     return qword;
 }