Index: trunk/Server/config.c
===================================================================
--- trunk/Server/config.c	(revision 401)
+++ trunk/Server/config.c	(revision 402)
@@ -134,4 +134,6 @@
 #elif defined(__NETWARE__)
 	strcpy(config.hostname, "netware");
+#elif defined(__amiga__)
+	strcpy(config.hostname, "amiga");
 #else
 	gethostname(config.hostname, 1024);
Index: trunk/Server/module.c
===================================================================
--- trunk/Server/module.c	(revision 401)
+++ trunk/Server/module.c	(revision 402)
@@ -18,5 +18,5 @@
 extern struct tw_config config;
 
-#if defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(__NeXT__) || defined(__DOS__)
+#if defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(__NeXT__) || defined(__DOS__) || defined(__amiga__)
 void* tw_module_load(const char* path) { return NULL; }
 
Index: trunk/Server/server.c
===================================================================
--- trunk/Server/server.c	(revision 401)
+++ trunk/Server/server.c	(revision 402)
@@ -15,4 +15,8 @@
 #include "tw_module.h"
 #include "tw_version.h"
+
+#ifdef __amiga__
+#include <pthread.h>
+#endif
 
 #if !defined(_MSC_VER) && !defined(__BORLANDC__)
@@ -108,5 +112,5 @@
 #endif
 
-#if defined(_PSP) || defined(__ps2sdk__) || defined(__bsdi__)
+#if defined(_PSP) || defined(__ps2sdk__) || defined(__bsdi__) || defined(__amiga__)
 #include "strptime.h"
 #endif
@@ -516,4 +520,6 @@
 #define NO_RETURN_THREAD
 void tw_server_pass(void* ptr) {
+#elif defined(__amiga__)
+void* tw_server_pass(void* ptr) {
 #elif defined(__HAIKU__)
 int32_t tw_server_pass(void* ptr) {
@@ -521,5 +527,5 @@
 int tw_server_pass(void* ptr) {
 #endif
-#if defined(__HAIKU__) || defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
+#if defined(__HAIKU__) || defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__amiga__)
 #define FREE_PTR
 	int sock = ((struct pass_entry*)ptr)->sock;
@@ -622,5 +628,5 @@
 					struct tm* btm;
 					strptime(req.headers[i + 1], "%a, %d %b %Y %H:%M:%S GMT", &tm);
-#if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__USLC__) || defined(__NeXT__) || defined(__bsdi__)
+#if defined(__MINGW32__) || defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__USLC__) || defined(__NeXT__) || defined(__bsdi__) || defined(__amiga__)
 					t = 0;
 					btm = localtime(&t);
@@ -1056,5 +1062,5 @@
 #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
 			if(errno == EINTR) continue;
-			cm_log("Server", "Select failure: %s", strerror(errno));
+			cm_log("Server", "Select/poll failure: %s", strerror(errno));
 #endif
 			break;
@@ -1079,5 +1085,8 @@
 					socklen_t clen = sizeof(claddr);
 					int sock = accept(sockets[i], (struct sockaddr*)&claddr, &clen);
-#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
+#if defined(__MINGW32__) || defined(__HAIKU__) || defined(_PSP) || defined(__PPU__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__amiga__)
+#ifdef __amiga__
+					pthread_t thrt;
+#endif
 					int j;
 					struct pass_entry* e = malloc(sizeof(*e));
@@ -1104,4 +1113,6 @@
 #elif defined(_PSP) || defined(__PPU__)
 						tw_server_pass(e);
+#elif defined(__amiga__)
+					pthread_create(&thrt, NULL, tw_server_pass, e);
 #elif defined(__HAIKU__)
 					for(j = 0; j < sizeof(threads) / sizeof(threads[0]); j++) {
Index: trunk/Server/strptime.c
===================================================================
--- trunk/Server/strptime.c	(revision 401)
+++ trunk/Server/strptime.c	(revision 402)
@@ -36,5 +36,5 @@
 //__RCSID("$NetBSD: strptime.c,v 1.62 2017/08/24 01:01:09 ginsbach Exp $");
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__NeXT__) || defined(__bsdi__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__NeXT__) || defined(__bsdi__) || defined(__amiga__)
 
 #include <stdlib.h>
@@ -116,5 +116,5 @@
 #endif
 
-#ifdef __WATCOMC__
+#if defined(__WATCOMC__)
 #define _tzset tzset
 #endif
@@ -470,6 +470,6 @@
                     continue;
                 }
-#if defined(_WIN32) || defined(__OS2__) || defined(__NeXT__) || defined(__DOS__)
-#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__NeXT__)
+#if defined(_WIN32) || defined(__OS2__) || defined(__NeXT__) || defined(__DOS__) || defined(__amiga__)
+#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__NeXT__) || defined(__amiga__)
 		if (1)
 #else
@@ -561,4 +561,5 @@
 #ifdef _WIN32
             _tzset();
+#elif defined(__amiga__)
 #else
             tzset();
Index: trunk/Server/strptime.h
===================================================================
--- trunk/Server/strptime.h	(revision 401)
+++ trunk/Server/strptime.h	(revision 402)
@@ -8,5 +8,5 @@
 #include <time.h>
 
-#if defined(_WIN32) || defined(_PSP) || defined(__ps2sdk__) || defined(__OS2__) || defined(__NETWARE__) || defined(__NeXT__) || defined(__DOS__) || defined(__bsdi__)
+#if defined(_WIN32) || defined(_PSP) || defined(__ps2sdk__) || defined(__OS2__) || defined(__NETWARE__) || defined(__NeXT__) || defined(__DOS__) || defined(__bsdi__) || defined(__amiga__)
 char* strptime(const char *buf, const char *fmt, struct tm *tm);
 #endif
Index: trunk/Server/version.c
===================================================================
--- trunk/Server/version.c	(revision 401)
+++ trunk/Server/version.c	(revision 402)
@@ -26,4 +26,6 @@
 #elif defined(__DOS__)
     "DOS"
+#elif defined(__amiga__)
+    "Amiga"
 #elif defined(__MINGW32__)
     "Windows-MinGW32"
