--- ./lib/server/CClientProxy1_0.cpp.orig	2006-04-02 03:47:03.000000000 +0200
+++ ./lib/server/CClientProxy1_0.cpp	2007-07-24 16:59:59.000000000 +0200
@@ -401,7 +401,7 @@
 							&x, &y, &w, &h, &dummy1, &mx, &my)) {
 		return false;
 	}
-	LOG((CLOG_DEBUG "received client \"%s\" info shape=%d,%d %dx%d", getName().c_str(), x, y, w, h));
+	LOG((CLOG_DEBUG "received client \"%s\" info shape=%d,%d %dx%d mouse=%d,%d", getName().c_str(), x, y, w, h, mx, my));
 
 	// validate
 	if (w <= 0 || h <= 0) {
@@ -413,8 +413,14 @@
 	m_info.m_y  = y;
 	m_info.m_w  = w;
 	m_info.m_h  = h;
-	m_info.m_mx = mx;
-	m_info.m_my = my;
+	
+	if(mx >= x && mx < x+w && my >= y && my < y+h) {
+		m_info.m_mx = mx;
+		m_info.m_my = my;
+	} else {
+		m_info.m_mx = x + w/2;
+		m_info.m_my = y + h/2;
+	}
 
 	// acknowledge receipt
 	LOG((CLOG_DEBUG1 "send info ack to \"%s\"", getName().c_str()));


syntax highlighted by Code2HTML, v. 0.9.1