diff --git a/java/src/com/tightvnc/vncviewer/OptionsFrame.java b/java/src/com/tightvnc/vncviewer/OptionsFrame.java
index c8d1b04..5034af6 100644
--- a/java/src/com/tightvnc/vncviewer/OptionsFrame.java
+++ b/java/src/com/tightvnc/vncviewer/OptionsFrame.java
@@ -183,8 +183,8 @@
     String s = viewer.readParameter("Scaling Factor", false);
     if (s == null) s = "100%";
     setScalingFactor(s);
-    if (!s.equalsIgnoreCase("Auto")) {
-      choices[scalingFactorIndex].select(s.trim() + '%');
+    if (autoScale) {
+      choices[scalingFactorIndex].select("Auto");
     } else {
       choices[scalingFactorIndex].select(s);
     }
@@ -447,7 +447,8 @@
     } else if (source == choices[scalingFactorIndex]){
         // Tell VNC canvas that scaling factor has changed
         setScalingFactor(choices[scalingFactorIndex].getSelectedItem());
-        viewer.vc.setScalingFactor(scalingFactor);
+        if (viewer.vc != null)
+          viewer.vc.setScalingFactor(scalingFactor);
     }
   }
 
diff --git a/java/src/com/tightvnc/vncviewer/VncCanvas.java b/java/src/com/tightvnc/vncviewer/VncCanvas.java
index 7a8c76a..a457469 100644
--- a/java/src/com/tightvnc/vncviewer/VncCanvas.java
+++ b/java/src/com/tightvnc/vncviewer/VncCanvas.java
@@ -263,8 +263,11 @@
     int fbWidth = rfb.framebufferWidth;
     int fbHeight = rfb.framebufferHeight;
 
-    // Calculate scaling factor for auto scaling.
-    if (maxWidth > 0 && maxHeight > 0) {
+    if (viewer.options.autoScale) {
+      if (!(maxWidth > 0 && maxHeight > 0)) {
+        maxWidth = fbWidth;
+        maxHeight = fbHeight;
+      }
       int f1 = maxWidth * 100 / fbWidth;
       int f2 = maxHeight * 100 / fbHeight;
       scalingFactor = Math.min(f1, f2);
