diff -urN wine-1.7.11-orig/dlls/ntdll/process.c wine-1.7.11/dlls/ntdll/process.c
--- wine-1.7.11-orig/dlls/ntdll/process.c	2014-01-18 04:48:48 +0900
+++ wine-1.7.11/dlls/ntdll/process.c	2014-02-14 09:04:25 +0900
@@ -231,6 +231,46 @@
                     /* FIXME : real data */
                     memset(&pvmi, 0 , sizeof(VM_COUNTERS));
 
+#ifdef __linux__
+                    FILE *f = fopen("/proc/self/status", "r");
+                    if (f) {
+                        char buf[100];
+                        int at_bol = 1;
+                        while (fgets(buf, sizeof(buf), f)) {
+                            const int has_eol = (buf[strlen(buf)-1] == '\n');
+                            if (at_bol) {
+                                const char *tag = buf;
+                                char *s = strchr(buf, ':');
+                                if (s) {
+                                    *s++ = '\0';
+                                    unsigned long value = strtoul(s, NULL, 10);
+                                    if (strcmp(tag, "VmPeak") == 0) {
+                                        pvmi.PeakVirtualSize = value*1024;
+                                        pvmi.PeakPagefileUsage = value*1024;
+                                        pvmi.QuotaPeakPagedPoolUsage = value*1024;
+                                    } else if (strcmp(tag, "VmSize") == 0) {
+                                        pvmi.VirtualSize = value*1024;
+                                        pvmi.PagefileUsage = value*1024;
+                                        pvmi.QuotaPagedPoolUsage = value*1024;
+                                    } else if (strcmp(tag, "VmHWM") == 0) {
+                                        pvmi.PeakWorkingSetSize = value*1024;
+                                    } else if (strcmp(tag, "VmRSS") == 0) {
+                                        pvmi.WorkingSetSize = value*1024;
+                                    }
+                                    /* We could get QuotaNonPagedPoolUsage from
+                                     * the VmLck line, but Linux doesn't give a
+                                     * peak value for that, so we just ignore
+                                     * it instead of returning a "peak" value
+                                     * that might decrease over time.
+                                     * FIXME: track the peak value ourselves. */
+                                }
+                            }
+                            at_bol = has_eol;
+                        }
+                        fclose(f);
+                    }
+#endif  /* __linux__ */
+
                     len = ProcessInformationLength;
                     if (len != FIELD_OFFSET(VM_COUNTERS,PrivatePageCount)) len = sizeof(VM_COUNTERS);
 
