--- a/src/Init.cpp
+++ b/src/Init.cpp
@@ -531,7 +531,7 @@ void SetDealTables(
     for (int s = 0; s < DDS_SUITS; s++)
     {
       relp->absRank[1][s].hand =
-        static_cast<char>(handLookup[s][topBitNo]);
+        static_cast<signed char>(handLookup[s][topBitNo]);
       relp->absRank[1][s].rank = static_cast<char>(topBitNo);
     }
   }
--- a/src/TransTableL.cpp
+++ b/src/TransTableL.cpp
@@ -1025,8 +1025,8 @@ void TransTableL::PrintNodeValues(
     cardSuit[3] << cardRank[15-static_cast<int>(np.leastWin[3])] << "\n";
 
   fout << setw(16) << left << "Bounds" << 
-    to_string(np.lbound) << " to " <<
-    to_string(np.ubound) << " tricks\n";
+    to_string(static_cast<int>(np.lbound)) << " to " <<
+    to_string(static_cast<int>(np.ubound)) << " tricks\n";
 
   fout << setw(16) << left << "Best move" <<
     cardSuit[ static_cast<int>(np.bestMoveSuit) ] <<
