diff --git a/ChangeLog b/ChangeLog
index 3bd265da..96a4b5c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-29 Joerg Wunsch <j@uriah.heep.sax.de>
+
+	Submitted by <bikenomad@gmail.com>:
+	patch #5007: Patch for line-buffering of stdout and stderr
+	* main.c: call setvbuf() for stdout and stderr.
+
 2007-10-29 Joerg Wunsch <j@uriah.heep.sax.de>
 
 	Submitted by <graceindustries@gmail.com>:
diff --git a/main.c b/main.c
index 860fafac..6af9f31d 100644
--- a/main.c
+++ b/main.c
@@ -272,6 +272,13 @@ int main(int argc, char * argv [])
   char  * homedir;
 #endif
 
+  /*
+   * Set line buffering for file descriptors so we see stdout and stderr
+   * properly interleaved.
+   */
+  setvbuf(stdout, (char*)NULL, _IOLBF, 0);
+  setvbuf(stderr, (char*)NULL, _IOLBF, 0);
+
   progname = strrchr(argv[0],'/');
 
 #if defined (WIN32NATIVE)