diff --git a/loader/pe_image.c b/loader/pe_image.c
index df01966abd902a49cfba51dbabe481b7b2c9f42a..77cea45d24883db5ef767ce4af1b86d052960187 100644
--- a/loader/pe_image.c
+++ b/loader/pe_image.c
@@ -603,6 +603,11 @@ HMODULE PE_LoadImage( HANDLE hFile, LPCSTR filename, WORD *version )
         load_addr = (DWORD)VirtualAlloc( NULL, vma_size,
 					 MEM_RESERVE | MEM_COMMIT,
 					 PAGE_EXECUTE_READWRITE );
+	if (!load_addr) {
+            FIXME_(win32)(
+                   "FATAL: Couldn't load module %s (out of memory, %d needed)!\n", filename, vma_size);
+            goto error;
+	}
     }
 
     TRACE_(win32)("Load addr is %lx (base %lx), range %x\n",