diff -u motion-3.2.11.broken/motion.c motion-3.2.11/motion.c --- motion-3.2.11.broken/motion.c 2008-09-22 01:20:58.000000000 +0200 +++ motion-3.2.11/motion.c 2009-04-13 17:09:40.000000000 +0200 @@ -2738,9 +2738,6 @@ { int errno_save, n; char buf[1024]; -#if (!defined(BSD)) - char msg_buf[100]; -#endif va_list ap; int threadnr; @@ -2767,16 +2764,7 @@ if (errno_flag) { strcat(buf, ": "); n += 2; - /* - * this is bad - apparently gcc/libc wants to use the non-standard GNU - * version of strerror_r, which doesn't actually put the message into - * my buffer :-(. I have put in a 'hack' to get around this. - */ -#if (defined(BSD)) strerror_r(errno_save, buf + n, sizeof(buf) - n); /* 2 for the ': ' */ -#else - strcat(buf, strerror_r(errno_save, msg_buf, sizeof(msg_buf))); -#endif } /* If 'level' is not negative, send the message to the syslog */ if (level >= 0)