--- wine/dlls/netapi32/access.c	2002-12-17 02:46:40.000000000 +0100
+++ wine-20030508/dlls/netapi32/access.c	2003-05-13 22:56:14.000000000 +0200
@@ -216,11 +216,57 @@
         ui->usri1_script_path[0] = 0;
         break;
       }
+
+    case 20:
+      {
+        PUSER_INFO_20 ui;
+        PUSER_INFO_0 ui0;
+        NET_API_STATUS status;
+        /* sizes of the field buffers in WCHARS */
+        int name_sz, comment_sz, full_name_sz;
+
+        comment_sz = 1;
+        full_name_sz = 1;
+
+        /* get data */
+        status = NetUserGetInfo(servername, username, 0, (LPBYTE *) &ui0);
+        if (status != NERR_Success)
+        {
+            NetApiBufferFree(ui0);
+            return status;
+        }
+        name_sz = lstrlenW(ui0->usri0_name) + 1;
+
+        /* set up buffer */
+        NetApiBufferAllocate(sizeof(USER_INFO_20) +
+                             (name_sz + full_name_sz + comment_sz) * sizeof(WCHAR),
+                             (LPVOID *) bufptr);
+        ui = (PUSER_INFO_20) *bufptr;
+        ui->usri20_name = (LPWSTR) (*bufptr + sizeof(USER_INFO_20));
+        ui->usri20_full_name = (LPWSTR) (
+            ((PBYTE) ui->usri20_name) + name_sz * sizeof(WCHAR));
+        ui->usri20_comment = (LPWSTR) (
+            ((PBYTE) ui->usri20_full_name) + full_name_sz * sizeof(WCHAR));
+	
+        /* set data */
+        lstrcpyW(ui->usri20_name, ui0->usri0_name);
+        NetApiBufferFree(ui0);
+        TRACE("Name (%s, %p)\n", debugstr_w(ui->usri20_name), ui->usri20_name);
+	ui->usri20_full_name[0] = 0;
+        TRACE("Full Name (%s, %p)\n", debugstr_w(ui->usri20_full_name), ui->usri20_full_name);
+        ui->usri20_comment[0] = 0;
+        ui->usri20_flags = 0;  
+        //if(ui->uri20_name == sAdminUser)
+	ui->usri20_user_id = 0; //Win2k Administrator=500
+	TRACE("Name (%s, %p)\n", debugstr_w(ui->usri20_name), ui->usri20_name);
+        break;
+      }
+
     case 2:
     case 3:
     case 4:
     case 11:
-    case 20:
+   // case 20:
     case 23:
     case 1003:
     case 1005:
@@ -250,6 +296,7 @@
         ERR("Invalid level %ld is specified\n", level);
         return ERROR_INVALID_LEVEL;
     }
+    TRACE("End Function - Return: %d\n", NERR_Success);
     return NERR_Success;
 }
 
@@ -485,4 +532,98 @@
   return NERR_DCNotFound; /* say we can't find a domain controller */  
 }
 
+/************************************************************
+ *                NetUserEnum  (NETAPI32.@)
+ *
+ *  Return date of the user 
+ */
+
+NET_API_STATUS WINAPI
+NetUserEnum( LPWSTR servername, DWORD level, DWORD Filter, LPBYTE* bufptr,
+    DWORD PreferredMaximumLength, LPDWORD ReturnedEntryCount, LPDWORD TotalEntry,
+    LPDWORD resume_handle)
+{
+  FIXME("not implemented! it's only work arround for Lotus Notes 6-stub!\n");
+  TRACE("(%s, %ld, %ld, %p, %ld, %p, %p)\n", debugstr_w(servername), level, Filter, 
+          bufptr, PreferredMaximumLength, ReturnedEntryCount, resume_handle);
 
+  NET_API_STATUS status;
+  
+  
+  if (!NETAPI_IsLocalComputer(servername))
+    {
+      FIXME(":not implemented for non-local computers\n");
+      status = NETAPI_ValidateServername(servername);
+      if (status != NERR_Success)
+	{
+          return status;
+	}
+        
+       return ERROR_INVALID_LEVEL;
+    }
+  else
+    {
+      if (resume_handle && *resume_handle)
+	{
+	  FIXME(":resume handle not implemented\n");
+	  return ERROR_INVALID_LEVEL;
+	}
+
+      /* number of the records, returned 
+         teoricaly: 3 - for current user, Administrator and Guest users
+         i use 1 - Administrator
+      */
+      int records = 1;
+
+      switch (level)
+        {
+          case 20:
+            {
+              status = NetUserGetInfo(servername, sAdminUserName, level, bufptr);
+              TRACE("Returned Data (%p, %s)\n", bufptr, debugstr_w(((PUSER_INFO_20) bufptr)->usri20_name));
+
+              *ReturnedEntryCount = records;
+              *TotalEntry = records;
+              break;
+            }
+    
+          case 0:
+          case 1:
+          case 2:
+          case 3:
+          case 4:
+          case 10:
+          case 11:
+          case 23:
+          case 1003:
+          case 1005:
+          case 1006:
+          case 1007:
+          case 1008:
+          case 1009:
+          case 1010:
+          case 1011:
+          case 1012:
+          case 1013:
+          case 1014:
+          case 1017:
+          case 1018:
+          case 1020:
+          case 1023:
+          case 1024:
+          case 1025:
+          case 1051:
+          case 1052:
+          case 1053:
+            {
+              FIXME("Level %ld is not implemented\n", level);
+              break;
+            }
+          default:
+            ERR("Invalid level %ld is specified\n", level);
+            return ERROR_INVALID_LEVEL;
+        }
+    }
+
+  return status;  /* say an error for see */  
+}
