diff -Naur ../src/include/winuser.h include/winuser.h
--- ../src/include/winuser.h    2010-01-24 05:32:26.000000000 +0100
+++ include/winuser.h   2010-04-27 15:12:34.000000000 +0200
@@ -508,6 +512,13 @@

 int WINAPI     GetSystemMetrics(int nIndex);

+#define SPI_SETWORKAREA            47
+#define SPI_GETWORKAREA            48
+
+BOOL WINAPI
+SystemParametersInfo (UINT uiAction,  UINT uiParam, PVOID pvParam, UINT fWinIni);
+
+
 HWND WINAPI    GetDlgItem(HWND hDlg, int nIDDlgItem);

 /* ************************** Caret support **********************************/
diff -Naur ../src/mwin/windefw.c mwin/windefw.c
--- ../src/mwin/windefw.c	2010-01-09 18:31:56.000000000 +0100
+++ mwin/windefw.c	2010-04-27 15:16:32.000000000 +0200
@@ -328,7 +328,7 @@
 				hwnd->style &= ~WS_MAXIMIZE;
 			} else {
 				hwnd->restorerc = hwnd->winrect;
-				GetWindowRect(rootwp, &rc);
+				SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0);
 				MoveWindow(hwnd, -mwSYSMETRICS_CXFRAME,
 					-mwSYSMETRICS_CYFRAME,
 					rc.right+2*mwSYSMETRICS_CXFRAME,
diff -Naur ../src/mwin/winmain.c mwin/winmain.c
--- ../src/mwin/winmain.c	2010-04-12 08:12:06.000000000 +0200
+++ mwin/winmain.c	2010-04-27 15:20:20.000000000 +0200
@@ -651,6 +651,8 @@
 	wp->update = GdAllocRegion();
 #endif
 
+	SystemParametersInfo (SPI_SETWORKAREA, 0, NULL, 0);
+
 	listwp = wp;
 	rootwp = wp;
 	focuswp = wp;
diff -Naur ../src/mwin/winuser.c mwin/winuser.c
--- ../src/mwin/winuser.c	2010-03-12 07:40:24.000000000 +0100
+++ mwin/winuser.c	2010-04-27 15:27:28.000000000 +0200
@@ -40,6 +42,7 @@
 int	mwpaintSerial = 1;		/* experimental alphablend sequencing*/
 int	mwpaintNC = 1;			/* experimental NC paint handling*/
 BOOL 	mwforceNCpaint = FALSE;		/* force NC paint when alpha blending*/
+RECT mwSYSPARAM_WORKAREA = {0, 0, -1, -1};
 
 struct timer {			/* private timer structure*/
 	HWND	hwnd;		/* window associated with timer, NULL if none*/
@@ -1556,6 +1687,24 @@
 	return 0;
 }
 
+BOOL WINAPI
+SystemParametersInfo (UINT uiAction,  UINT uiParam, PVOID pvParam, UINT fWinIni)
+{
+	switch (uiAction)
+	{
+	case SPI_GETWORKAREA:
+		*(RECT*)pvParam = mwSYSPARAM_WORKAREA;
+		return TRUE;
+	case SPI_SETWORKAREA:
+		if (pvParam)
+			mwSYSPARAM_WORKAREA = *(RECT*)pvParam;
+		else
+			mwSYSPARAM_WORKAREA = rootwp->winrect;
+		return TRUE;
+	}
+	return FALSE;
+}
+
 HWND WINAPI
 GetDlgItem(HWND hDlg, int nIDDlgItem)
 {
