diff --git a/rfb/ScaledPixelBuffer.cxx b/rfb/ScaledPixelBuffer.cxx
index 1eb8e94..bd1ff72 100644
--- a/rfb/ScaledPixelBuffer.cxx
+++ b/rfb/ScaledPixelBuffer.cxx
@@ -28,10 +28,9 @@
 
 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), scale(100) {
+  : bpp(32), scaled_data(0), scale_ratio(1), scale(100) {
 
-  setScale(scale);
+  setSourceBuffer(src_data_, src_width_, src_height_);
 }
 
 ScaledPixelBuffer::ScaledPixelBuffer() 
@@ -42,6 +41,15 @@
 ScaledPixelBuffer::~ScaledPixelBuffer() {
 }
 
+void ScaledPixelBuffer::setSourceBuffer(U8 **src_data_, int w, int h) {
+  src_data = src_data_;
+  src_width  = w;
+  src_height = h;
+  scaled_width  = (int)ceil(src_width  * scale_ratio);
+  scaled_height = (int)ceil(src_height * scale_ratio);
+  recreateScaledBuffer();
+}
+
 void ScaledPixelBuffer::setScale(int scale_) {
   if (scale != scale_) {
     scale = scale_;
diff --git a/rfb/ScaledPixelBuffer.h b/rfb/ScaledPixelBuffer.h
index cd92ca8..f7243e1 100644
--- a/rfb/ScaledPixelBuffer.h
+++ b/rfb/ScaledPixelBuffer.h
@@ -48,6 +48,9 @@
       return Rect(pos, pos.translate(Point(scaled_width, scaled_height)));
     }
 
+    // Set the new source buffer and its parameters
+    void setSourceBuffer(U8 **src_data, int w, int h);
+
     // Set the new scale, in percent
     virtual void setScale(int scale);
 
