--- ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiexpose.c.X.original	2015-02-13 14:03:44.744441510 +0100
+++ ./nx-X11/programs/Xserver/hw/nxagent/X/NXmiexpose.c	2015-02-10 19:13:13.768687235 +0100
@@ -1,3 +1,20 @@
+/**************************************************************************/
+/*                                                                        */
+/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/.         */
+/*                                                                        */
+/* NXAGENT, NX protocol compression and NX extensions to this software    */
+/* are copyright of NoMachine. Redistribution and use of the present      */
+/* software is allowed according to terms specified in the file LICENSE   */
+/* which comes in the source distribution.                                */
+/*                                                                        */
+/* Check http://www.nomachine.com/licensing.html for applicability.       */
+/*                                                                        */
+/* NX and NoMachine are trademarks of Medialogic S.p.A.                   */
+/*                                                                        */
+/* All rights reserved.                                                   */
+/*                                                                        */
+/**************************************************************************/
+
 /* $XdotOrg: xc/programs/Xserver/mi/miexpose.c,v 1.6 2005/07/03 08:53:51 daniels Exp $ */
 /* $XFree86: xc/programs/Xserver/mi/miexpose.c,v 3.9tsi Exp $ */
 /***********************************************************
@@ -109,6 +126,12 @@
 the region package can call this.
 */
 
+#ifdef NXAGENT_SERVER
+
+#include "Windows.h"
+
+#endif
+
 #ifndef RECTLIMIT
 #define RECTLIMIT 25		/* pick a number, any number > 8 */
 #endif
@@ -158,6 +181,20 @@
     BoxRec expBox;
     Bool extents;
 
+#ifdef NXAGENT_SERVER
+
+    /*
+     * Set the elements reported by the compiler
+     * as uninitialized.
+     */
+
+    expBox.x1 = 0;
+    expBox.y1 = 0;
+    expBox.x2 = 0;
+    expBox.y2 = 0;
+
+#endif
+
     /* This prevents warning about pscr not being used. */
     pGC->pScreen = pscr = pGC->pScreen;
 
@@ -498,6 +535,11 @@
     WindowPtr pWin;
     register RegionPtr prgn, other_exposed;
 {
+#ifdef NXAGENT_SERVER
+
+    int total;
+
+#endif
     RegionPtr   exposures = prgn;
     if (pWin->backStorage && prgn)
 	/*
@@ -533,7 +575,20 @@
 	    }
 	    exposures = other_exposed;
 	}
+#ifdef NXAGENT_SERVER
+
+        /*
+         * If the number of rectangles is greater
+         * than 4, let the function decide.
+         */
+
+        total = REGION_NUM_RECTS(exposures);
+
+        if (clientInterested && exposures && (total > RECTLIMIT ||
+                (total > 4 && nxagentExtentsPredicate(total) == 1)))
+#else
 	if (clientInterested && exposures && (REGION_NUM_RECTS(exposures) > RECTLIMIT))
+#endif
 	{
 	    /*
 	     * If we have LOTS of rectangles, we decide to take the extents
@@ -666,6 +721,25 @@
     register xRectangle *prect;
     int numRects;
 
+#ifdef NXAGENT_SERVER
+
+    /*
+     * Set the elements reported by the compiler
+     * as uninitialized.
+     */
+
+    prgnWin.extents.x1 = 0;
+    prgnWin.extents.y1 = 0;
+    prgnWin.extents.x2 = 0;
+    prgnWin.extents.y2 = 0;
+
+    prgnWin.data = NULL;
+
+    oldCorner.x = 0;
+    oldCorner.y = 0;
+
+#endif
+
     gcmask = 0;
 
     if (what == PW_BACKGROUND)
