diffs in /app/interface.c, create_display_shell, near line 701, 
column 1 old (-), new (+):

   gint n_width, n_height;
   gint s_width, s_height;
   gint scalesrc, scaledest;
   gint contextid;

   /*  adjust the initial scale -- so that window fits on screen */
   /*  the 75% value is the same as in gdisplay_shrink_wrap. It  */
   /*  probably should be a user-configurable option.            */
   s_width  = gdk_screen_width () * 0.75;
   s_height = gdk_screen_height () * 0.75;

   scalesrc  = SCALESRC (gdisp);
   scaledest = SCALEDEST (gdisp);

   n_width  = SCALEX (gdisp, width);
   n_height = SCALEX (gdisp, height);

   /*  Limit to the size of the screen...  */
-  while (n_width > s_width || n_height > s_height)
+  /*  2003/01/13 KAM - ignore long dimension for high aspect ratio */
+  while ((n_width  > s_width  && n_width  / 5 < n_height) ||
+         (n_height > s_height && n_height / 5 < n_width))
     {
       if (scaledest > 1)
  scaledest--;
       else
  if (scalesrc < 0xff)
    scalesrc++;

       n_width  = width *
  (scaledest * SCREEN_XRES (gdisp)) / (scalesrc * gdisp->gimage->xresolution);
       n_height = height *
  (scaledest * SCREEN_XRES (gdisp)) / (scalesrc * gdisp->gimage->xresolution);
+
+ if (scaledest == 1 && scalesrc == 0xff)
+  break;
     }

+  /* force window size limit when dimension ignored for high aspect ratio */
+  if (n_width  > s_width ) n_width  = s_width;
+  if (n_height > s_height) n_height = s_height;
+
   gdisp->scale = (scaledest << 8) + scalesrc;

