diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
index e6c15b8..bd6b4d3 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
@@ -40,23 +40,28 @@
 void ScaledDIBSectionBuffer::setScale(int scale_) {
   if (scale_ == getScale()) return;
 
-  if (src_buffer) {
-    delete src_buffer;
-    src_buffer = 0;
-  }
   if (scale_ != 100) {
     scaling = true;
-    src_buffer = new ManagedPixelBuffer(format, src_width, src_height);
-    src_data = &(src_buffer->data);
+    if (!src_buffer) {
+      src_buffer = new ManagedPixelBuffer(format, src_width, src_height);
+      src_data = &(src_buffer->data);
+    }
   } else {
     scaling = false;
+    if (src_buffer) delete src_buffer;
+    src_buffer = 0;
+    src_data = 0;
   }
   ScaledPixelBuffer::setScale(scale_);
+  recreateScaledBuffer();
 }
 
-void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf) {
-  if (scaling) src_buffer->setPF(pf);
-  DIBSectionBuffer::setPF(pf);
+void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf_) {
+  if (scaling) {
+    ScaledPixelBuffer::setPF(pf_);
+    src_buffer->setPF(pf_);
+  }
+  DIBSectionBuffer::setPF(pf_);
   scaled_data = data;
 }
 
diff --git a/win/vncviewer/OptionsDialog.cxx b/win/vncviewer/OptionsDialog.cxx
index 2e43b38..5bb21fd 100644
--- a/win/vncviewer/OptionsDialog.cxx
+++ b/win/vncviewer/OptionsDialog.cxx
@@ -163,6 +163,15 @@
     setItemChecked(IDC_ACCEPT_BELL, dlg->options.acceptBell);
     setItemChecked(IDC_AUTO_RECONNECT, dlg->options.autoReconnect);
     setItemChecked(IDC_SHOW_TOOLBAR, dlg->options.showToolbar);
+    char scale_values[8][20] = {
+      "25","50","75","90","100","125","150","Auto"
+    };
+    HWND hScaleCombo = GetDlgItem(handle, IDC_COMBO_SCALE);
+    for (int i = 0; i <= 7; i++) {
+      SendMessage(hScaleCombo, CB_INSERTSTRING, 
+        (WPARAM)i, (LPARAM)(int FAR*)scale_values[i]);
+    }
+    SetDlgItemText(handle, IDC_COMBO_SCALE, "100");
   }
   virtual bool onOk() {
     dlg->options.shared = isItemChecked(IDC_CONN_SHARED);
diff --git a/win/vncviewer/resource.h b/win/vncviewer/resource.h
index 5493fd0..7fb32fe 100644
--- a/win/vncviewer/resource.h
+++ b/win/vncviewer/resource.h
@@ -120,6 +120,9 @@
 #define IDC_FTREMOTELIST                1094
 #define IDC_ALLOW_JPEG                  1095
 #define IDC_FTLOCALRELOAD               1096
+#define IDC_STATIC_SCALE                1097
+#define IDC_COMBO_SCALE                 1098
+#define IDC_STATIC_PERCENT              1099
 #define ID_TOOLBAR                      40002
 #define ID_CLOSE                        40003
 #define ID_OPTIONS                      40004
@@ -148,7 +151,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        134
 #define _APS_NEXT_COMMAND_VALUE         40028
-#define _APS_NEXT_CONTROL_VALUE         1097
+#define _APS_NEXT_CONTROL_VALUE         1100
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif
diff --git a/win/vncviewer/vncviewer.rc b/win/vncviewer/vncviewer.rc
index ea5dd65..b71f180 100644
--- a/win/vncviewer/vncviewer.rc
+++ b/win/vncviewer/vncviewer.rc
@@ -223,7 +223,7 @@
     CONTROL         "Show toolbar",IDC_SHOW_TOOLBAR,"Button",BS_AUTOCHECKBOX | 
                     WS_TABSTOP,106,25,100,15
     CONTROL         "Render cursor locally",IDC_LOCAL_CURSOR,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,40,199,15
+                    BS_AUTOCHECKBOX | WS_TABSTOP,7,40,99,15
     CONTROL         "Allow dynamic desktop resizing",IDC_DESKTOP_RESIZE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,55,199,15
     CONTROL         "Only use protocol version 3.3",IDC_PROTOCOL_3_3,"Button",
@@ -232,6 +232,10 @@
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,85,199,15
     CONTROL         "Offer to automatically reconnect",IDC_AUTO_RECONNECT,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,199,15
+    LTEXT           "Scale by:",IDC_STATIC_SCALE,106,40,34,15,SS_CENTERIMAGE
+    COMBOBOX        IDC_COMBO_SCALE,140,40,40,30,CBS_DROPDOWN | CBS_SORT | 
+                    WS_VSCROLL | WS_TABSTOP
+    LTEXT           "%",IDC_STATIC_PERCENT,185,40,21,15,SS_CENTERIMAGE
 END
 
 IDD_INPUTS DIALOG DISCARDABLE  0, 0, 186, 162
