diff -urN openradius-0.9.9/Rules.mk openradius-0.9.9b/Rules.mk
--- openradius-0.9.9/Rules.mk	Wed Aug 11 16:46:24 2004
+++ openradius-0.9.9b/Rules.mk	Sun Aug 29 13:20:20 2004
@@ -7,7 +7,7 @@
 
 # Standard stuff
 
-VERSION		:= 0.9.9
+VERSION		:= 0.9.9b
 
 .SUFFIXES:
 .SUFFIXES:	.c .o
diff -urN openradius-0.9.9/common/subprocs.c openradius-0.9.9b/common/subprocs.c
--- openradius-0.9.9/common/subprocs.c	Sat Aug  7 21:45:36 2004
+++ openradius-0.9.9b/common/subprocs.c	Sun Aug 29 12:57:23 2004
@@ -409,7 +409,11 @@
 	ssize_t xfered, left;
 
 	/* Write as much as we can. */
-	ring_write(p->w, p->wfd, &xfered, 0);
+	if (ring_write(p->w, p->wfd, &xfered, 0) == RING_IOERR) {
+		msg(F_PROC, L_ERR, "proc_handle_write: Warning: write error from %d - killing it to be sure\n", p->pid);
+		proc_stop(p, t);
+		return;
+	}
 
 	/* If we transfered anything at all, add RECEIVING to our state */
 	p->state |= PRS_RECEIVING;
diff -urN openradius-0.9.9/language/langcompile.c openradius-0.9.9b/language/langcompile.c
--- openradius-0.9.9/language/langcompile.c	Fri Jan  2 11:22:29 2004
+++ openradius-0.9.9b/language/langcompile.c	Fri Aug 27 21:18:03 2004
@@ -394,7 +394,7 @@
 		if (c == '(' && context == NON) {
 			S(1);
 			l = reccompile(m, ifaces, source, &o, bufsize - ret, 0,
-				       req_ctx, ctx_item, &context);
+				       ANY, ctx_item, &context);
 			if (l == -1) return -1;
 			ret += l;
 			continue;
diff -urN openradius-0.9.9/server/main.c openradius-0.9.9b/server/main.c
--- openradius-0.9.9/server/main.c	Sat Aug  7 21:45:36 2004
+++ openradius-0.9.9b/server/main.c	Sun Aug 29 13:19:59 2004
@@ -228,11 +228,12 @@
 	sa.sa_flags = SA_NOCLDSTOP + SA_RESTART; sa.sa_handler = sighandler; 
 	sigaction(SIGHUP, &sa, 0); sigaction(SIGINT, &sa, 0);
 	sigaction(SIGQUIT, &sa, 0); sigaction(SIGTERM, &sa, 0);
-	sigaction(SIGCHLD, &sa, 0);
+	sigaction(SIGCHLD, &sa, 0); 
+	sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, 0); 
 #else
 	signal(SIGHUP, sighandler); signal(SIGINT, sighandler);
 	signal(SIGQUIT, sighandler); signal(SIGTERM, sighandler); 
-	signal(SIGCHLD, sighandler);
+	signal(SIGCHLD, sighandler); signal(SIGPIPE, SIG_IGN);
 #endif
 
 	/* Go to background */
