Index: src/config.c
--- src/config.c.orig	2005-02-22 15:11:29 +0100
+++ src/config.c	2005-02-24 09:10:21 +0100
@@ -429,8 +429,11 @@
 
 static void trim(char *s)
 {
-    char *c = s + strlen(s) - 1;
+    char *c;
 
+    if (strlen(s) == 0)
+        return;
+    c = s + strlen(s) - 1;
     while (isspace(*c) && c > s) {
         *c = '\0';
         --c;
@@ -464,8 +467,9 @@
             c = NULL;
         } else {
             /* one or more args */
-            *c = '\0';
-            ++c;
+            *c++ = '\0';
+            while (isspace(*c))
+                c++;
         }
 
         p = lookup_keyword(buf);
Index: src/get.c
--- src/get.c.orig	2005-02-22 15:11:29 +0100
+++ src/get.c	2005-02-24 09:10:21 +0100
@@ -625,7 +625,7 @@
      */
     snprintf(pathname_with_index, sizeof(pathname_with_index),
              "%s/dir.%d.%ld", cachedir,
-             (int) statbuf->st_dev, statbuf->st_ino);
+             (int) statbuf->st_dev, (long)statbuf->st_ino);
     data_fd = open(pathname_with_index, O_RDONLY);
 
     if (data_fd != -1) {        /* index cache */
Index: src/globals.h
--- src/globals.h.orig	2005-02-22 15:11:29 +0100
+++ src/globals.h	2005-02-24 09:10:21 +0100
@@ -279,7 +279,7 @@
 extern unsigned total_connections;
 extern unsigned int system_bufsize;      /* Default size of SNDBUF given by system */
 
-extern sigjmp_buf env;
+extern jmp_buf env;
 extern int handle_sigbus;
 extern unsigned int cgi_umask;
 
Index: src/signals.c
--- src/signals.c.orig	2005-02-22 15:11:29 +0100
+++ src/signals.c	2005-02-24 09:10:21 +0100
@@ -29,7 +29,7 @@
 #endif
 #include <signal.h>             /* signal */
 
-sigjmp_buf env;
+jmp_buf env;
 int handle_sigbus;
 
 void sigsegv(int);
@@ -134,7 +134,7 @@
     abort();
 }
 
-extern sigjmp_buf env;
+extern jmp_buf env;
 extern int handle_sigbus;
 
 void sigbus(int dummy)
