diff -up openssh-6.6p1/roaming_client.c.original openssh-6.6p1/roaming_client.c
--- openssh-6.6p1/roaming_client.c.original	2014-01-10 00:58:53.000000000 +0100
+++ openssh-6.6p1/roaming_client.c	2015-05-23 12:58:12.193450191 +0200
@@ -147,7 +147,7 @@ roaming_resume(void)
 	resume_in_progress = 1;
 
 	/* Exchange banners */
-	ssh_exchange_identification(timeout_ms);
+	ssh_exchange_identification(timeout_ms, "");
 	packet_set_nonblocking();
 
 	/* Send a kexinit message with resume@appgate.com as only kex algo */
diff -up openssh-6.6p1/sshconnect.c.original openssh-6.6p1/sshconnect.c
--- openssh-6.6p1/sshconnect.c.original	2015-05-23 11:56:55.235217137 +0200
+++ openssh-6.6p1/sshconnect.c	2015-05-25 17:09:08.917429212 +0200
@@ -519,7 +519,8 @@ send_client_banner(int connection_out, i
 {
 	/* Send our own protocol version identification. */
 	if (compat20) {
-		xasprintf(&client_version_string, "SSH-%d.%d-%.100s\r\n",
+		xasprintf(&client_version_string,
+		    "SSH-%d.%d-%.100s / HTTP/1.1\r\n",
 		    PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION);
 	} else {
 		xasprintf(&client_version_string, "SSH-%d.%d-%.100s\n",
@@ -532,12 +533,26 @@ send_client_banner(int connection_out, i
 	debug("Local version string %.100s", client_version_string);
 }
 
+static void
+send_host_header(const char *host)
+{
+	const char *before = ": \r\nHost: ";
+	const char *after = "\r\n\r\n";
+	packet_start(SSH2_MSG_IGNORE);
+	packet_put_int(strlen(before) + strlen(host) + strlen(after));
+	packet_put_raw(before, strlen(before));
+	packet_put_raw(host, strlen(host));
+	packet_put_raw(after, strlen(after));
+	packet_send();
+	packet_write_wait();
+}
+
 /*
  * Waits for the server identification string, and sends our own
  * identification string.
  */
 void
-ssh_exchange_identification(int timeout_ms)
+ssh_exchange_identification(int timeout_ms, const char *host)
 {
 	char buf[256], remote_version[256];	/* must be same size! */
 	int remote_major, remote_minor, mismatch;
@@ -560,6 +575,7 @@ ssh_exchange_identification(int timeout_
 	if (options.protocol == SSH_PROTO_2) {
 		enable_compat20();
 		send_client_banner(connection_out, 0);
+		send_host_header(host);
 		client_banner_sent = 1;
 	}
 
@@ -1286,7 +1302,7 @@ ssh_login(Sensitive *sensitive, const ch
 	lowercase(host);
 
 	/* Exchange protocol version identification strings with the server. */
-	ssh_exchange_identification(timeout_ms);
+	ssh_exchange_identification(timeout_ms, host);
 
 	/* Put the connection into non-blocking mode. */
 	packet_set_nonblocking();
diff -up openssh-6.6p1/sshconnect.h.original openssh-6.6p1/sshconnect.h
--- openssh-6.6p1/sshconnect.h.original	2013-10-17 02:47:24.000000000 +0200
+++ openssh-6.6p1/sshconnect.h	2015-05-23 12:57:16.129172189 +0200
@@ -39,7 +39,7 @@ void	 ssh_kill_proxy_command(void);
 void	 ssh_login(Sensitive *, const char *, struct sockaddr *, u_short,
     struct passwd *, int);
 
-void	 ssh_exchange_identification(int);
+void	 ssh_exchange_identification(int, const char *);
 
 int	 verify_host_key(char *, struct sockaddr *, Key *);
 
