diff --git a/rfb/ScaledPixelBuffer.cxx b/rfb/ScaledPixelBuffer.cxx
index a1f5763..57db57f 100644
--- a/rfb/ScaledPixelBuffer.cxx
+++ b/rfb/ScaledPixelBuffer.cxx
@@ -29,14 +29,14 @@
 ScaledPixelBuffer::ScaledPixelBuffer(U8 **src_data_, int src_width_,
                                      int src_height_, int scale)
   : src_data(src_data_), src_width(src_width_), src_height(src_height_),
-    bpp(32), scaled_data(0), scale_ratio(0) {
+    bpp(32), scaled_data(0), scale_ratio(0), scale(100) {
 
   setScale(scale);
 }
 
 ScaledPixelBuffer::ScaledPixelBuffer() 
-  : src_data(0), src_width(0), src_height(0), scale_ratio(1), bpp(32), 
-    scaled_data(0) {
+  : src_data(0), src_width(0), src_height(0), scale_ratio(1), scale(100),
+    bpp(32), scaled_data(0) {
 }
 
 ScaledPixelBuffer::~ScaledPixelBuffer() {
@@ -65,8 +65,9 @@
   }
 } 
 
-void ScaledPixelBuffer::setScale(int scale) {
-  if (scale != scale_ratio * 100) {
+void ScaledPixelBuffer::setScale(int scale_) {
+  if (scale != scale_) {
+    scale = scale_;
     scale_ratio = double(scale) / 100;
 
     scaled_width  = (int)ceil(src_width  * scale_ratio);
diff --git a/rfb/ScaledPixelBuffer.h b/rfb/ScaledPixelBuffer.h
index 8342a58..4f652b0 100644
--- a/rfb/ScaledPixelBuffer.h
+++ b/rfb/ScaledPixelBuffer.h
@@ -39,7 +39,7 @@
     int width()  const { return scaled_width; }
     int height() const { return scaled_height; }
     int area() const { return scaled_width * scaled_height; }
-    int scale() const { return (int)(scale_ratio * 100); }
+    int getScale() const { return scale; }
 
     // Get rectangle encompassing this buffer
     //   Top-left of rectangle is either at (0,0), or the specified point.
@@ -80,6 +80,7 @@
     int scaled_width;
     int scaled_height;
     int bpp;
+    int scale;
     double scale_ratio;
     U8 **src_data;
     U8 *scaled_data;
