diff --git a/Fltk/Opengl_Window.cpp b/Fltk/Opengl_Window.cpp
index 39026c0be8abe63642161bbed81b603f78114cd3..c736146fd838ca159e7c23f606580961b2cfd163 100644
--- a/Fltk/Opengl_Window.cpp
+++ b/Fltk/Opengl_Window.cpp
@@ -1,4 +1,4 @@
-// $Id: Opengl_Window.cpp,v 1.53 2005-12-17 22:28:16 geuzaine Exp $
+// $Id: Opengl_Window.cpp,v 1.54 2005-12-17 23:13:20 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -92,11 +92,11 @@ void MousePosition::recenter()
   
 void myZoom(MousePosition &click1, MousePosition &click2)
 {
-  if(click1.wnr[0] == click2.wnr[0] || click1.wnr[1] == click2.wnr[1])
+  if(click1.win[0] == click2.win[0] || click1.win[1] == click2.win[1])
     return;
 
-  CTX.s[0] *= (CTX.vxmax - CTX.vxmin) / (click2.wnr[0] - click1.wnr[0]);
-  CTX.s[1] *= (CTX.vymax - CTX.vymin) / (click1.wnr[1] - click2.wnr[1]);
+  CTX.s[0] *= (double)CTX.viewport[2] / (click2.win[0] - click1.win[0]);
+  CTX.s[1] *= (double)CTX.viewport[3] / (click2.win[1] - click1.win[1]);
   CTX.s[2] = MIN(CTX.s[0], CTX.s[1]); // bof...
   
   MousePosition tmp(click1);
@@ -106,9 +106,9 @@ void myZoom(MousePosition &click1, MousePosition &click2)
   tmp.t[1] = CTX.t[1]; 
   tmp.recenter();
 
-  WID->update_manip_window();
   InitPosition();
   Draw();
+  WID->update_manip_window();
 }
 
 void Opengl_Window::draw()
@@ -149,7 +149,8 @@ void Opengl_Window::draw()
     glDisable(GL_DEPTH_TEST);
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
-    gluOrtho2D(CTX.vxmin, CTX.vxmax, CTX.vymin, CTX.vymax);
+    glOrtho((double)CTX.viewport[0], (double)CTX.viewport[2],
+	    (double)CTX.viewport[1], (double)CTX.viewport[3], -1., 1.);
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     glDisable(GL_DEPTH_TEST);
@@ -160,11 +161,11 @@ void Opengl_Window::draw()
     glLineWidth(0.2);
     for(int i = 0; i < 2; i++){
       glBegin(GL_LINE_STRIP);
-      glVertex2d(click.wnr[0], click.wnr[1]);
-      glVertex2d(zoom.wnr[0], click.wnr[1]);
-      glVertex2d(zoom.wnr[0], zoom.wnr[1]);
-      glVertex2d(click.wnr[0], zoom.wnr[1]);
-      glVertex2d(click.wnr[0], click.wnr[1]);
+      glVertex2d(click.win[0], CTX.viewport[3] - click.win[1]);
+      glVertex2d(zoom.win[0], CTX.viewport[3] - click.win[1]);
+      glVertex2d(zoom.win[0], CTX.viewport[3] - zoom.win[1]);
+      glVertex2d(click.win[0], CTX.viewport[3] - zoom.win[1]);
+      glVertex2d(click.win[0], CTX.viewport[3] - click.win[1]);
       glEnd();
       if(!i) zoom.set();
     }