 +  lua_State *L;
 +  int ref;
 +#if !_WIN32
-+  int pid, fstdin, fstdout, fstderr;
++  int pid, fstdin, fstdout, fstderr, exit_status;
 +#else
 +  HANDLE pid, fstdin, fstdout, fstderr;
 +#endif

+  WaitForSingleObject(p->pid, INFINITE);
+  GetExitCodeProcess(p->pid, &status);
+#endif
+  return (lua_pushinteger(L, status), 1);
+}
+

   {"time",      os_time},
   {"tmpname",   os_tmpname},
   {NULL, NULL}
@@ -404,6 +419,630 @@
 
 LUAMOD_API int luaopen_os (lua_State *L) {
   luaL_newlib(L, syslib);
