diff -ur links-2.1pre33.orig/os_dep.c links-2.1pre33/os_dep.c
--- links-2.1pre33.orig/os_dep.c	2007-12-28 09:40:31.000000000 +0300
+++ links-2.1pre33/os_dep.c	2008-04-24 23:41:27.000000000 +0400
@@ -176,7 +176,9 @@
 
 void handle_terminal_resize(int fd, void (*fn)(void))
 {
+#ifdef SIGWINCH
 	install_signal_handler(SIGWINCH, sigwinch, fn, 0);
+#endif
 #ifdef WIN32
 	win32_resize_poll();
 #endif
@@ -184,7 +186,9 @@
 
 void unhandle_terminal_resize(int fd)
 {
+#ifdef SIGWINCH
 	install_signal_handler(SIGWINCH, NULL, NULL, 0);
+#endif
 }
 
 int get_terminal_size(int fd, int *x, int *y)
diff -ur links-2.1pre33.orig/select.c links-2.1pre33/select.c
--- links-2.1pre33.orig/select.c	2007-12-11 21:45:38.000000000 +0300
+++ links-2.1pre33/select.c	2008-04-24 23:10:58.000000000 +0400
@@ -246,7 +246,7 @@
 	}
 }
 
-#define NUM_SIGNALS	32
+#define NUM_SIGNALS	512
 
 struct signal_handler {
 	void (*fn)(void *);
@@ -341,16 +341,20 @@
 
 void sigchld(void *p)
 {
+#ifdef SIGCHLD
 #ifndef WNOHANG
 	wait(NULL);
 #else
 	while (waitpid(-1, NULL, WNOHANG) > 0) ;
 #endif
+#endif
 }
 
 void set_sigcld(void)
 {
+#ifdef SIGCHLD
 	install_signal_handler(SIGCHLD, sigchld, NULL, 1);
+#endif
 }
 
 int terminate_loop = 0;
