diff --git a/ChangeLog b/ChangeLog
index e921e22..73d7db3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+20000419
+ - OpenBSD CVS updates
+   [channels.c]
+   - fix pr 1196, listen_port and port_to_connect interchanged
+   [scp.c]
+   - after completion, replace the progress bar ETA counter with a final 
+     elapsed time; my idea, aaron wrote the patch
+   [ssh_config sshd_config]
+   - show 'Protocol' as an example, ok markus@
+   [sshd.c]
+   - missing xfree()
+ - Add missing header to bsd-misc.c
+
 20000416
  - Reduce diff against OpenBSD source
    - All OpenSSL includes are now unconditionally referenced as 
diff --git a/bsd-misc.c b/bsd-misc.c
index 83822ca..c22cde3 100644
--- a/bsd-misc.c
+++ b/bsd-misc.c
@@ -47,6 +47,8 @@
 #include "bsd-misc.h"
 #include "entropy.h"
 
+#include <openssl/rand.h>
+
 #ifndef HAVE_ARC4RANDOM
 
 typedef struct
diff --git a/channels.c b/channels.c
index 5f3b0d1..a009158 100644
--- a/channels.c
+++ b/channels.c
@@ -17,7 +17,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: channels.c,v 1.25 2000/04/16 01:18:41 damien Exp $");
+RCSID("$Id: channels.c,v 1.26 2000/04/19 06:26:13 damien Exp $");
 
 #include "ssh.h"
 #include "packet.h"
@@ -1469,9 +1469,9 @@
 		packet_put_int(listen_port);
 	} else {
 		packet_start(SSH_CMSG_PORT_FORWARD_REQUEST);
-		packet_put_int(port_to_connect);
-		packet_put_cstring(host_to_connect);
 		packet_put_int(listen_port);
+		packet_put_cstring(host_to_connect);
+		packet_put_int(port_to_connect);
 		packet_send();
 		packet_write_wait();
 		/*
diff --git a/scp.c b/scp.c
index 2bd3ed2..64869f9 100644
--- a/scp.c
+++ b/scp.c
@@ -45,7 +45,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: scp.c,v 1.19 2000/04/16 01:18:45 damien Exp $");
+RCSID("$Id: scp.c,v 1.20 2000/04/19 06:26:14 damien Exp $");
 
 #include "ssh.h"
 #include "xmalloc.h"
@@ -1008,7 +1008,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$Id: scp.c,v 1.19 2000/04/16 01:18:45 damien Exp $
+ *	$Id: scp.c,v 1.20 2000/04/19 06:26:14 damien Exp $
  */
 
 char *
@@ -1211,7 +1211,12 @@
 		snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
 			 " - stalled -");
 	} else {
-		remaining = (int) (totalbytes / (statbytes / elapsed) - elapsed);
+		if (flag != 1)
+			remaining =
+			    (int)(totalbytes / (statbytes / elapsed) - elapsed);
+		else
+			remaining = elapsed;
+
 		i = remaining / 3600;
 		if (i)
 			snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
@@ -1221,7 +1226,8 @@
 				 "   ");
 		i = remaining % 3600;
 		snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
-			 "%02d:%02d ETA", i / 60, i % 60);
+			 "%02d:%02d%s", i / 60, i % 60,
+			 (flag != 1) ? " ETA" : "    ");
 	}
 	atomicio(write, fileno(stdout), buf, strlen(buf));
 
diff --git a/ssh_config b/ssh_config
index 6e732a2..b71ff65 100644
--- a/ssh_config
+++ b/ssh_config
@@ -26,6 +26,7 @@
 #   StrictHostKeyChecking no
 #   IdentityFile ~/.ssh/identity
 #   Port 22
+#   Protocol 2,1
 #   Cipher blowfish
 #   EscapeChar ~
 
diff --git a/sshd.c b/sshd.c
index c8508e9..3b75b88 100644
--- a/sshd.c
+++ b/sshd.c
@@ -14,7 +14,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshd.c,v 1.105 2000/04/14 10:30:33 markus Exp $");
+RCSID("$OpenBSD: sshd.c,v 1.106 2000/04/17 12:31:47 markus Exp $");
 
 #include "xmalloc.h"
 #include "rsa.h"
@@ -1265,6 +1265,7 @@
 	packet_put_bignum2(dh->pub_key);	// f
 	packet_put_string((char *)signature, slen);
 	packet_send();
+	xfree(signature);
 	packet_write_wait();
 
 	kex_derive_keys(kex, hash, shared_secret);
diff --git a/sshd_config b/sshd_config
index 614cf70..52436ac 100644
--- a/sshd_config
+++ b/sshd_config
@@ -1,6 +1,7 @@
 # This is ssh server systemwide configuration file.
 
 Port 22
+#Protocol 2,1
 ListenAddress 0.0.0.0
 #ListenAddress ::
 HostKey /etc/ssh_host_key
