diff --git a/ChangeLog b/ChangeLog
index 9890363570fe68860844ee2b66b649b37b58f26f..8f5de18e95611245e826ea328199c6a048eb1312 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2003-10-07  Per Cederqvist  <ceder@ceder.dyndns.org>
+
+	Implement expect_after and expect_before.
+	* pcl_expect.py (RE): New constant.
+	(EOF): New constant.
+	(TIMEOUT): New constant.
+	(CONT): New constant.
+	(BadArgs): New exception.
+	(_expect_before): New variable.
+	(_expect_after): New variable.
+	(expectable.fill_buffer): Treat EIO as end-of-file.  You
+	apparently get this from a pty when the child exits, at least on
+	Linux.
+	(spawn.send): Log what is sent via debug.
+	(impl.loop): Implement expect_before and expect_after.
+	(_expect_before): Removed.
+	(_expect_after): Removed.
+	(impl.__expect_before): New method.
+	(impl.__expect_after): New method.
+	(impl.__run_expectations): New method.
+	(expect_after): New function.
+	(expect_before): New function.
+	(__validate_expectations): New function.
+
+	Added the dualftp demo program.
+	* demo/dualftp.py: New demonstration.  Get a directory listing
+	from two ftp servers, simultaneously.
+
 2003-10-06  Per Cederqvist  <ceder@ceder.dyndns.org>
 
 	Added the mandatory ftp demo.  Every expect module needs one.