Actual write the cached struct in GlobalMemoryStatus.

diff --git a/memory/global.c b/memory/global.c
index 302a7e1..4e06757 100644
--- a/memory/global.c
+++ b/memory/global.c
@@ -1515,18 +1515,20 @@
             lpmem->dwAvailVirtual = lpmem->dwAvailPhys+lpmem->dwAvailPageFile;
             lpmem->dwMemoryLoad = (lpmem->dwTotalVirtual-lpmem->dwAvailVirtual)
                                       / (lpmem->dwTotalVirtual / 100);
-            return;
         }
-    }
+    } else
 #endif
-    /* FIXME: should do something for other systems */
-    lpmem->dwMemoryLoad    = 0;
-    lpmem->dwTotalPhys     = 16*1024*1024;
-    lpmem->dwAvailPhys     = 16*1024*1024;
-    lpmem->dwTotalPageFile = 16*1024*1024;
-    lpmem->dwAvailPageFile = 16*1024*1024;
-    lpmem->dwTotalVirtual  = 32*1024*1024;
-    lpmem->dwAvailVirtual  = 32*1024*1024;
+    {
+	/* FIXME: should do something for other systems */
+	lpmem->dwMemoryLoad    = 0;
+	lpmem->dwTotalPhys     = 16*1024*1024;
+	lpmem->dwAvailPhys     = 16*1024*1024;
+	lpmem->dwTotalPageFile = 16*1024*1024;
+	lpmem->dwAvailPageFile = 16*1024*1024;
+	lpmem->dwTotalVirtual  = 32*1024*1024;
+	lpmem->dwAvailVirtual  = 32*1024*1024;
+    }
+    memcpy(&cached_memstatus,lpmem,sizeof(MEMORYSTATUS));
 }
 
 /***********************************************************************