CharsetItem *rev = new CharsetItem[128];
 
     for (int i = 0; i < 128; i++)
-        rev[i].c = 128 + i, rev[i].u = tbl[i];
+        rev[i].c = wxUint8(128 + i), rev[i].u = tbl[i];
 
     qsort(rev, 128, sizeof(CharsetItem), CompareCharsetItems);
 
 
 {
     static unsigned char temp[8];
 
-    temp[0] = (m_ll >> 56) & 0xFF;
-    temp[1] = (m_ll >> 48) & 0xFF;
-    temp[2] = (m_ll >> 40) & 0xFF;
-    temp[3] = (m_ll >> 32) & 0xFF;
-    temp[4] = (m_ll >> 24) & 0xFF;
-    temp[5] = (m_ll >> 16) & 0xFF;
-    temp[6] = (m_ll >> 8)  & 0xFF;
-    temp[7] = (m_ll >> 0)  & 0xFF;
+    temp[0] = (unsigned char)((m_ll >> 56) & 0xFF);
+    temp[1] = (unsigned char)((m_ll >> 48) & 0xFF);
+    temp[2] = (unsigned char)((m_ll >> 40) & 0xFF);
+    temp[3] = (unsigned char)((m_ll >> 32) & 0xFF);
+    temp[4] = (unsigned char)((m_ll >> 24) & 0xFF);
+    temp[5] = (unsigned char)((m_ll >> 16) & 0xFF);
+    temp[6] = (unsigned char)((m_ll >> 8)  & 0xFF);
+    temp[7] = (unsigned char)((m_ll >> 0)  & 0xFF);
 
     return temp;
 }
 {
     static unsigned char temp[8];
 
-    temp[0] = (m_ll >> 56) & 0xFF;
-    temp[1] = (m_ll >> 48) & 0xFF;
-    temp[2] = (m_ll >> 40) & 0xFF;
-    temp[3] = (m_ll >> 32) & 0xFF;
-    temp[4] = (m_ll >> 24) & 0xFF;
-    temp[5] = (m_ll >> 16) & 0xFF;
-    temp[6] = (m_ll >> 8)  & 0xFF;
-    temp[7] = (m_ll >> 0)  & 0xFF;
+    temp[0] = (unsigned char)((m_ll >> 56) & 0xFF);
+    temp[1] = (unsigned char)((m_ll >> 48) & 0xFF);
+    temp[2] = (unsigned char)((m_ll >> 40) & 0xFF);
+    temp[3] = (unsigned char)((m_ll >> 32) & 0xFF);
+    temp[4] = (unsigned char)((m_ll >> 24) & 0xFF);
+    temp[5] = (unsigned char)((m_ll >> 16) & 0xFF);
+    temp[6] = (unsigned char)((m_ll >> 8)  & 0xFF);
+    temp[7] = (unsigned char)((m_ll >> 0)  & 0xFF);
 
     return temp;
 }