diff --git a/include/nonunix/ChangeLog b/include/nonunix/ChangeLog
new file mode 100644
index 0000000..6656a31
--- /dev/null
+++ b/include/nonunix/ChangeLog
@@ -0,0 +1,3 @@
+1999-10-25    <tytso@valinux.com>
+
+	* config.h: Add #define's for strcasecmp and strncasecmp
diff --git a/include/nonunix/config.h b/include/nonunix/config.h
index cc8ac19..e269d20 100644
--- a/include/nonunix/config.h
+++ b/include/nonunix/config.h
@@ -8,6 +8,9 @@
 #define HAVE_SETJMP_H  1
 
 #define HAVE_STRCASECMP 1
+#define strcasecmp     _stricmp
+#define strncasecmp     _strnicmp
+
 #define HAVE_CONIO_H   1
 
 #define HAVE_EXT2_INODE_VERSION 1
diff --git a/lib/uuid/ChangeLog b/lib/uuid/ChangeLog
index 3cedaf0..83abc89 100644
--- a/lib/uuid/ChangeLog
+++ b/lib/uuid/ChangeLog
@@ -1,3 +1,9 @@
+1999-10-25    <tytso@valinux.com>
+
+	* gen_uuid_nt.c (uuid_generate): W2K strikes again!  An
+		incompatible interface change means we need to detect
+		whether the code is running on an NT4 or NT5 system.
+
 1999-10-22    <tytso@valinux.com>
 
 	* Release of E2fsprogs 1.16
diff --git a/lib/uuid/gen_uuid_nt.c b/lib/uuid/gen_uuid_nt.c
index 56aeecb..aa44bfd 100644
--- a/lib/uuid/gen_uuid_nt.c
+++ b/lib/uuid/gen_uuid_nt.c
@@ -1,16 +1,35 @@
-
-
-//
-// Use NT api to generate uuid
-//
-
+/*
+ * gen_uuid_nt.c -- Use NT api to generate uuid
+ *
+ * Written by Andrey Shedel (andreys@ns.cr.cyco.com)
+ */
 
 
 #include "uuidP.h"
 
+#pragma warning(push,4)
 
 #pragma comment(lib, "ntdll.lib")
 
+//
+// Here is a nice example why it's not a good idea
+// to use native API in ordinary applications.
+// Number of parameters in function below was changed from 3 to 4
+// for NT5.
+//
+//
+// NTSYSAPI
+// NTSTATUS
+// NTAPI
+// NtAllocateUuids(
+//     OUT PULONG p1,
+//     OUT PULONG p2,
+//     OUT PULONG p3,
+//     OUT PUCHAR Seed // 6 bytes
+//   );
+//
+//
+
 unsigned long
 __stdcall
 NtAllocateUuids(
@@ -19,7 +38,55 @@
    void* p3   // 4 bytes
    );
 
+typedef
+unsigned long
+(__stdcall*
+NtAllocateUuids_2000)(
+   void* p1,  // 8 bytes
+   void* p2,  // 4 bytes
+   void* p3,  // 4 bytes
+   void* seed // 6 bytes
+   );
+
+
+
+//
+// Nice, but instead of including ntddk.h ot winnt.h
+// I should define it here because they MISSED __stdcall in those headers.
+//
+
+__declspec(dllimport)
+struct _TEB*
+__stdcall
+NtCurrentTeb(void);
+
+
+//
+// The only way to get version information from the system is to examine
+// one stored in PEB. But it's pretty dangerouse because this value could
+// be altered in image header.
+//
+
+static
+int
+Nt5(void)
+{
+	//return NtCuttentTeb()->Peb->OSMajorVersion >= 5;
+	return (int)*(int*)((char*)(int)(*(int*)((char*)NtCurrentTeb() + 0x30)) + 0xA4) >= 5;
+}
+
+
+
+
 void uuid_generate(uuid_t out)
 {
-	NtAllocateUuids(out, ((char*)out)+8, ((char*)out)+12 );
+	if(Nt5())
+	{
+		unsigned char seed[6];
+		((NtAllocateUuids_2000)NtAllocateUuids)(out, ((char*)out)+8, ((char*)out)+12, &seed[0] );
+	}
+	else
+	{
+		NtAllocateUuids(out, ((char*)out)+8, ((char*)out)+12);
+	}
 }
