diff -u -r -N --unidirectional-new-file mldonkey/src/config/mingw/os_stubs_c.c mldonkey-work/src/config/mingw/os_stubs_c.c
--- mldonkey/src/config/mingw/os_stubs_c.c	2006-02-18 19:30:46.167449600 +0100
+++ mldonkey-work/src/config/mingw/os_stubs_c.c	2006-02-18 19:29:38.379976000 +0100
@@ -437,3 +437,30 @@
    return; 
 }
 
+/*******************************************************************
+
+
+                         os_os_supported
+
+
+*******************************************************************/
+
+int os_os_supported()
+{
+	OSVERSIONINFO pVersion;
+	pVersion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+	int check = GetVersionEx(&pVersion);
+	
+	if ( check != 0 ) 
+	{
+      if ( pVersion.dwPlatformId == VER_PLATFORM_WIN32_NT )	
+	    return 1;
+	  else
+	    return 0;
+	}
+	else  /* expect an NT system because GetVersionEx failed */
+	{
+	  return 1;
+	}
+}
+
diff -u -r -N --unidirectional-new-file mldonkey/src/config/unix/os_stubs_c.c mldonkey-work/src/config/unix/os_stubs_c.c
--- mldonkey/src/config/unix/os_stubs_c.c	2006-02-18 19:30:46.187478400 +0100
+++ mldonkey-work/src/config/unix/os_stubs_c.c	2006-02-18 16:50:34.967222400 +0100
@@ -181,3 +181,16 @@
 }
 
 #endif
+
+/*******************************************************************
+
+
+                         os_os_supported
+
+
+*******************************************************************/
+
+int os_os_supported()
+{
+	  return 1;  /* return always 1 to expect an supported os */
+}
diff -u -r -N --unidirectional-new-file mldonkey/src/daemon/common/commonOptions.ml mldonkey-work/src/daemon/common/commonOptions.ml
--- mldonkey/src/daemon/common/commonOptions.ml	2006-02-05 14:17:40.000000000 +0100
+++ mldonkey-work/src/daemon/common/commonOptions.ml	2006-02-18 17:53:49.163008000 +0100
@@ -137,6 +137,20 @@
      exit 2);
   Unix2.can_write_to_directory file_basedir;
   Unix.chdir file_basedir;
+  
+  let uname = Unix32.uname () in
+  if uname <> "" && not (Unix32.os_supported ()) then begin
+    lprintf "WARNING: Mldonkey is not able to run faultless under\n";
+    lprintf "WARNING: %s\n" uname;
+    if Autoconf.windows then begin
+      lprintf "WARNING: Mldonkey can only work succesful on NT Systems\n";
+      lprintf "WARNING: (like Windows XP, 2000, server 2003 or NT).\n";
+    end;
+  end;
+  if uname = "" then begin
+    lprintf_nl "Unknown operating system, please report to the MLDonkey development team";
+    lprintf_nl "at https://savannah.nongnu.org/bugs/?group=mldonkey";    
+  end;
 
   if (String2.starts_with (Filename.basename Sys.argv.(0)) "mlnet")
     && not Autoconf.windows && not (Autoconf.system = "morphos") &&
diff -u -r -N --unidirectional-new-file mldonkey/src/daemon/driver/driverInteractive.ml mldonkey-work/src/daemon/driver/driverInteractive.ml
--- mldonkey/src/daemon/driver/driverInteractive.ml	2006-02-05 14:25:22.000000000 +0100
+++ mldonkey-work/src/daemon/driver/driverInteractive.ml	2006-02-18 19:29:23.939211200 +0100
@@ -71,9 +71,18 @@
       warning
     end
   else ""
+  
+let check_supported_os () =
+  let uname = Unix32.uname () in
+  let message = Printf.sprintf "Mldonkey is not able to run faultless under %s" uname; in
+  if uname <> "" && not (Unix32.os_supported ()) then begin
+    lprintf_nl () "%s" message;
+    message;
+  end
+  else ""
 
 let real_startup_message () =
-  !startup_message ^ (verify_user_admin ())
+  !startup_message ^ (verify_user_admin ()) ^ (check_supported_os ())
       
 (* ripped from gui_downloads *)
 
@@ -1745,7 +1754,12 @@
       ^ "\nIP blocking:\t " ^ (let r1,r2 = Ip_set.block_stats () in
           if r1 = 0 then dis_mess else Printf.sprintf "enabled, %d ranges loaded - optimized to %d" r1 r2)
       ^ "\nSystem info:\t " ^ (let uname = Unix32.uname () in
-          if uname <> "" then uname else "unknown")
+          if uname <> "" then
+            if not (Unix32.os_supported ()) then
+              Printf.sprintf "%s \nWARNING:\t Mldonkey is not able to run faultless under this operating system" uname
+            else 
+              uname
+          else "")
       ^ "\n\t\t language: " ^ Charset.default_language
       ^ " - locale: " ^ Charset.locstr
       ^ " - UTC offset: " ^ Rss_date.mk_timezone (Unix.time ())
diff -u -r -N --unidirectional-new-file mldonkey/src/utils/lib/os_stubs.h mldonkey-work/src/utils/lib/os_stubs.h
--- mldonkey/src/utils/lib/os_stubs.h	2006-02-18 19:30:46.207507200 +0100
+++ mldonkey-work/src/utils/lib/os_stubs.h	2006-02-18 20:07:54.091046400 +0100
@@ -139,6 +139,7 @@
 extern int64 os_getfilesize(char *path);
 extern void os_set_nonblock(OS_SOCKET fd);
 extern void os_uname(char buf[]);
+extern int os_os_supported();
 
 
 #define HASH_BUFFER_LEN 131072
diff -u -r -N --unidirectional-new-file mldonkey/src/utils/lib/stubs_c.c mldonkey-work/src/utils/lib/stubs_c.c
--- mldonkey/src/utils/lib/stubs_c.c	2006-02-18 19:30:46.207507200 +0100
+++ mldonkey-work/src/utils/lib/stubs_c.c	2006-02-18 16:50:34.977236800 +0100
@@ -1465,3 +1465,21 @@
 #endif
 }
 
+/*******************************************************************
+
+
+                         ml_os_supported
+
+
+*******************************************************************/
+
+value ml_os_supported(value unit)
+{
+	int buf = os_os_supported();
+		
+	if ( buf == 1 )
+	  return Val_true;
+	else
+	  return Val_false;
+}
+
diff -u -r -N --unidirectional-new-file mldonkey/src/utils/lib/unix32.ml mldonkey-work/src/utils/lib/unix32.ml
--- mldonkey/src/utils/lib/unix32.ml	2006-01-26 01:25:25.000000000 +0100
+++ mldonkey-work/src/utils/lib/unix32.ml	2006-02-18 17:24:42.651648000 +0100
@@ -47,6 +47,7 @@
 external external_start : string -> unit = "external_start"
 external external_exit : unit -> unit = "external_exit"
 external uname : unit -> string = "ml_uname"
+external os_supported : unit -> bool = "ml_os_supported"
   
 (* let really_write fd s pos len =
   try
diff -u -r -N --unidirectional-new-file mldonkey/src/utils/lib/unix32.mli mldonkey-work/src/utils/lib/unix32.mli
--- mldonkey/src/utils/lib/unix32.mli	2006-01-26 01:25:25.000000000 +0100
+++ mldonkey-work/src/utils/lib/unix32.mli	2006-02-18 17:24:42.661662400 +0100
@@ -24,6 +24,7 @@
 val external_start : string -> unit
 val external_exit : unit -> unit
 val uname : unit -> string
+val os_supported : unit -> bool
 
 val create_dir_mask : string ref
 val close : t -> unit
