diff --git a/rfbplayer/ChoosePixelFormatDialog.h b/rfbplayer/ChoosePixelFormatDialog.h
new file mode 100644
index 0000000..5e54f5a
--- /dev/null
+++ b/rfbplayer/ChoosePixelFormatDialog.h
@@ -0,0 +1,56 @@
+/* Copyright (C) 2004 TightVNC Team.  All Rights Reserved.
+ *    
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ */
+
+// -=- ChoosePixelFormatDialog.h
+
+#include <rfb_win32/Dialog.h>
+
+class ChoosePixelFormatDialog : public rfb::win32::Dialog {
+public:
+  ChoosePixelFormatDialog(long _pf) : Dialog(GetModuleHandle(0)), 
+    pf(_pf), combo(0) {}
+  // - Show the dialog and return true if OK was clicked,
+  //   false in case of error or Cancel
+  virtual bool showDialog() {
+    return Dialog::showDialog(MAKEINTRESOURCE(IDD_PIXELFORMAT));
+  }
+  const long getPF() const {return pf;}
+protected:
+
+  // Dialog methods (protected)
+  virtual void initDialog() {
+    combo = GetDlgItem(handle, IDC_PIXELFORMAT);
+    SendMessage(combo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)("Auto"));
+    SendMessage(combo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)("8 bit depth (RGB332)"));
+    SendMessage(combo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)("16 bit depth (RGB655)"));
+    SendMessage(combo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)("24 bit depth (RGB888)"));
+    SendMessage(combo, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)("24 bit depth (RGB888)"));
+    SendMessage(combo, CB_SETCURSEL, pf, 0);
+  }
+  virtual bool onOk() {
+    pf = SendMessage(combo, CB_GETCURSEL, 0, 0);
+    return true;
+  }
+  virtual bool onCancel() {
+    pf = -1;
+    return false;
+  }
+
+  long pf;
+  HWND combo;
+};
\ No newline at end of file
diff --git a/rfbplayer/resource.h b/rfbplayer/resource.h
index cb3e917..babf0f6 100644
--- a/rfbplayer/resource.h
+++ b/rfbplayer/resource.h
@@ -7,7 +7,9 @@
 #define IDR_ACCELERATOR                 131
 #define IDB_TOOLBAR                     132
 #define IDD_GOTO                        133
+#define IDD_PIXELFORMAT                 134
 #define IDC_GOTO_EDIT                   1003
+#define IDC_PIXELFORMAT                 1004
 #define ID_OPENFILE                     40011
 #define ID_CLOSEFILE                    40012
 #define ID_EXIT                         40013
@@ -31,9 +33,9 @@
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        134
+#define _APS_NEXT_RESOURCE_VALUE        136
 #define _APS_NEXT_COMMAND_VALUE         40045
-#define _APS_NEXT_CONTROL_VALUE         1004
+#define _APS_NEXT_CONTROL_VALUE         1005
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index b2943bd..855e402 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -29,6 +29,7 @@
 #include <rfbplayer/utils.h>
 #include <rfbplayer/resource.h>
 #include <rfbplayer/GotoPosDialog.h>
+#include <rfbplayer/ChoosePixelFormatDialog.h>
 
 using namespace rfb;
 using namespace rfb::win32;
diff --git a/rfbplayer/rfbplayer.dsp b/rfbplayer/rfbplayer.dsp
index 92cb5eb..ef770d8 100644
--- a/rfbplayer/rfbplayer.dsp
+++ b/rfbplayer/rfbplayer.dsp
@@ -128,6 +128,10 @@
 # PROP Default_Filter "h;hpp;hxx;hm;inl"
 # Begin Source File
 
+SOURCE=.\ChoosePixelFormatDialog.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\FbsInputStream.h
 # End Source File
 # Begin Source File
diff --git a/rfbplayer/rfbplayer.rc b/rfbplayer/rfbplayer.rc
index 0e33f33..dd427c7 100644
--- a/rfbplayer/rfbplayer.rc
+++ b/rfbplayer/rfbplayer.rc
@@ -211,6 +211,18 @@
     LTEXT           "Pos (ms):",IDC_STATIC,7,9,33,15,SS_CENTERIMAGE
 END
 
+IDD_PIXELFORMAT DIALOG DISCARDABLE  0, 0, 144, 62
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "RfbPlayer : Pixel Format"
+FONT 8, "MS Sans Serif"
+BEGIN
+    COMBOBOX        IDC_PIXELFORMAT,7,20,130,98,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
+    DEFPUSHBUTTON   "OK",IDOK,20,40,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,75,40,50,14
+    LTEXT           "Choose the pixel format:",IDC_STATIC,7,7,130,13
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -233,6 +245,22 @@
         HORZGUIDE, 24
         HORZGUIDE, 35
     END
+
+    IDD_PIXELFORMAT, DIALOG
+    BEGIN
+        LEFTMARGIN, 7
+        RIGHTMARGIN, 137
+        VERTGUIDE, 20
+        VERTGUIDE, 70
+        VERTGUIDE, 75
+        VERTGUIDE, 125
+        TOPMARGIN, 7
+        BOTTOMMARGIN, 55
+        HORZGUIDE, 7
+        HORZGUIDE, 20
+        HORZGUIDE, 35
+        HORZGUIDE, 40
+    END
 END
 #endif    // APSTUDIO_INVOKED
 
