diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx
index 4edaf2406..4902abea0 100644
--- a/src/Main/renderer.cxx
+++ b/src/Main/renderer.cxx
@@ -784,9 +784,14 @@ FGRenderer::resize( int width, int height ) {
 
     int curWidth = _xsize->getIntValue(),
         curHeight = _ysize->getIntValue();
-
-    _xsize->setIntValue(width);
-    _ysize->setIntValue(height);
+    if ((curHeight != height) || (curWidth != width)) {
+    // must guard setting these, or PLIB-PUI fails with too many live interfaces
+        _xsize->setIntValue(width);
+        _ysize->setIntValue(height);
+    }
+    
+    // must set view aspect ratio each frame, or initial values are wrong.
+    // should probably be fixed 'smarter' during view setup.
     double aspect = height / (double) width;
 
     // for all views