diff --git a/rfb_win32/DIBSectionBuffer.cxx b/rfb_win32/DIBSectionBuffer.cxx
index 2174376..026e5ed 100644
--- a/rfb_win32/DIBSectionBuffer.cxx
+++ b/rfb_win32/DIBSectionBuffer.cxx
@@ -53,7 +53,7 @@
   format = pf;
   recreateBuffer();
   if ((pf.bpp <= 8) && pf.trueColour) {
-    vlog.debug("creating %d-bit TrueColour palette", pf.depth);
+    vlog.debug("creating %d-bit TrueColor palette", pf.depth);
     for (int i=0; i < (1<<(pf.depth)); i++) {
       palette[i].b = ((((i >> pf.blueShift) & pf.blueMax) * 65535) + pf.blueMax/2) / pf.blueMax;
       palette[i].g = ((((i >> pf.greenShift) & pf.greenMax) * 65535) + pf.greenMax/2) / pf.greenMax;
@@ -208,7 +208,7 @@
 
 void DIBSectionBuffer::refreshPalette() {
   if (format.bpp > 8) {
-    vlog.error("refresh palette called for truecolour DIB");
+    vlog.error("refresh palette called for truecolor DIB");
     return;
   }
   vlog.debug("refreshing palette");
diff --git a/rfb_win32/DeviceFrameBuffer.cxx b/rfb_win32/DeviceFrameBuffer.cxx
index a4d1021..70975c3 100644
--- a/rfb_win32/DeviceFrameBuffer.cxx
+++ b/rfb_win32/DeviceFrameBuffer.cxx
@@ -146,7 +146,7 @@
   UINT entries = ::GetSystemPaletteEntries(dc, 0, 256, syspalette);
 
   if (entries == 0) {
-    vlog.info("resorting to standard 16 colour palette");
+    vlog.info("resorting to standard 16 color palette");
     for (unsigned int i=0;i<256;i++) {
       int v = (i%16) >= 8 ? 127 : 255;
       syspalette[i].peRed = i & 1 ? v : 0;
diff --git a/rfb_win32/SDisplay.cxx b/rfb_win32/SDisplay.cxx
index 6fa3ff0..4916c48 100644
--- a/rfb_win32/SDisplay.cxx
+++ b/rfb_win32/SDisplay.cxx
@@ -452,7 +452,7 @@
     recreatePixelBuffer();
     break;
   case WMMonitor::Notifier::DisplayColourMapChanged:
-    vlog.debug("desktop colourmap changed");
+    vlog.debug("desktop colormap changed");
     pb->updateColourMap();
     if (server)
       server->setColourMapEntries();
diff --git a/rfb_win32/Win32Util.cxx b/rfb_win32/Win32Util.cxx
index e25f43a..28fae2e 100644
--- a/rfb_win32/Win32Util.cxx
+++ b/rfb_win32/Win32Util.cxx
@@ -115,7 +115,7 @@
       switch (bi.bmiHeader.biBitCount) {
       case 16:
         // RGB 555 - High Colour
-        dcLog.info("16-bit High Colour");
+        dcLog.info("16-bit High Color");
         rMask = 0x7c00;
         bMask = 0x001f;
         gMask = 0x03e0;
@@ -124,7 +124,7 @@
       case 24:
       case 32:
         // RGB 888 - True Colour
-        dcLog.info("24/32-bit High Colour");
+        dcLog.info("24/32-bit High Color");
         rMask = 0xff0000;
         gMask = 0x00ff00;
         bMask = 0x0000ff;
