Reorder class initialiser list to match what actually happens
diff --git a/common/rfb/Encoder.cxx b/common/rfb/Encoder.cxx
index 16f7081..56b5f38 100644
--- a/common/rfb/Encoder.cxx
+++ b/common/rfb/Encoder.cxx
@@ -25,8 +25,8 @@
 
 Encoder::Encoder(SConnection *conn_, int encoding_,
                  enum EncoderFlags flags_, unsigned int maxPaletteSize_) :
-  conn(conn_), encoding(encoding_), flags(flags_),
-  maxPaletteSize(maxPaletteSize_)
+  encoding(encoding_), flags(flags_),
+  maxPaletteSize(maxPaletteSize_), conn(conn_)
 {
 }
 
diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx
index b4613e1..5adb766 100644
--- a/common/rfb/VNCSConnectionST.cxx
+++ b/common/rfb/VNCSConnectionST.cxx
@@ -70,8 +70,9 @@
     queryConnectTimer(this), inProcessMessages(false),
     pendingSyncFence(false), syncFence(false), fenceFlags(0),
     fenceDataLen(0), fenceData(NULL),
-    baseRTT(-1), minRTT(-1), seenCongestion(false), pingCounter(0),
-    ackedOffset(0), sentOffset(0), congWindow(0), congestionTimer(this),
+    baseRTT(-1), congWindow(0), ackedOffset(0), sentOffset(0),
+    minRTT(-1), seenCongestion(false),
+    pingCounter(0), congestionTimer(this),
     server(server_), updates(false),
     drawRenderedCursor(false), removeRenderedCursor(false),
     continuousUpdates(false), encodeManager(this),
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index 3d6f4a8..11e7fed 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -104,7 +104,7 @@
 Viewport::Viewport(int w, int h, const rfb::PixelFormat& serverPF, CConn* cc_)
   : Fl_Widget(0, 0, w, h), cc(cc_), frameBuffer(NULL),
     lastPointerPos(0, 0), lastButtonMask(0),
-    cursor(NULL), menuCtrlKey(false), menuAltKey(false)
+    menuCtrlKey(false), menuAltKey(false), cursor(NULL)
 {
 // FLTK STR #2636 gives us the ability to monitor clipboard changes
 #ifdef HAVE_FLTK_CLIPBOARD
diff --git a/win/winvnc/STrayIcon.cxx b/win/winvnc/STrayIcon.cxx
index 84575bd..b13f3f1 100644
--- a/win/winvnc/STrayIcon.cxx
+++ b/win/winvnc/STrayIcon.cxx
@@ -63,9 +63,9 @@
 
 class STrayIcon : public TrayIcon {
 public:
-  STrayIcon(STrayIconThread& t) : thread(t),
+  STrayIcon(STrayIconThread& t) :
     vncConfig(_T("vncconfig.exe"), isServiceProcess() ? _T("-noconsole -service") : _T("-noconsole")),
-    vncConnect(_T("winvnc4.exe"), _T("-noconsole -connect")) {
+    vncConnect(_T("winvnc4.exe"), _T("-noconsole -connect")), thread(t) {
 
     // ***
     SetWindowText(getHandle(), _T("winvnc::IPC_Interface"));
@@ -231,9 +231,10 @@
 
 STrayIconThread::STrayIconThread(VNCServerWin32& sm, UINT inactiveIcon_, UINT activeIcon_, 
                                  UINT dis_inactiveIcon_, UINT dis_activeIcon_, UINT menu_)
-: Thread("TrayIcon"), server(sm), inactiveIcon(inactiveIcon_), activeIcon(activeIcon_),
-  dis_inactiveIcon(dis_inactiveIcon_), dis_activeIcon(dis_activeIcon_),menu(menu_),
-  windowHandle(0), runTrayIcon(true) {
+: Thread("TrayIcon"), windowHandle(0), server(sm),
+  inactiveIcon(inactiveIcon_), activeIcon(activeIcon_),
+  dis_inactiveIcon(dis_inactiveIcon_), dis_activeIcon(dis_activeIcon_),
+  menu(menu_), runTrayIcon(true) {
   start();
 }
 
diff --git a/win/winvnc/VNCServerWin32.cxx b/win/winvnc/VNCServerWin32.cxx
index 9d77c27..b1b9596 100644
--- a/win/winvnc/VNCServerWin32.cxx
+++ b/win/winvnc/VNCServerWin32.cxx
@@ -59,8 +59,8 @@
       CreateEvent(0, FALSE, FALSE, "Global\\SessionEventTigerVNC") : 0),
     vncServer(CStr(ComputerName().buf), &desktop),
     hostThread(0), runServer(false), isDesktopStarted(false),
-    httpServer(&vncServer), config(&sockMgr), trayIcon(0),
-    rfbSock(&sockMgr), httpSock(&sockMgr),
+    httpServer(&vncServer), config(&sockMgr),
+    rfbSock(&sockMgr), httpSock(&sockMgr), trayIcon(0),
     queryConnectDialog(0)
 {
   // Initialise the desktop