diff --git a/cli-tcpfwd.c b/cli-tcpfwd.c
index 95b2d7cf0fcaac4d9c2b2261da7849277845aed3..78f61f7bd41f1794b418486f00192dc4b565bf48 100644
--- a/cli-tcpfwd.c
+++ b/cli-tcpfwd.c
@@ -234,7 +234,7 @@ static int newtcpforwarded(struct Channel * channel) {
 	char *origaddr = NULL;
 	unsigned int origport;
 	m_list_elem * iter = NULL;
-	struct TCPFwdEntry *fwd;
+	struct TCPFwdEntry *fwd = NULL;
 	char portstring[NI_MAXSERV];
 	int err = SSH_OPEN_ADMINISTRATIVELY_PROHIBITED;
 
@@ -265,7 +265,7 @@ static int newtcpforwarded(struct Channel * channel) {
 	}
 
 
-	if (iter == NULL) {
+	if (iter == NULL || fwd == NULL) {
 		/* We didn't request forwarding on that port */
 		cleantext(origaddr);
 		dropbear_log(LOG_INFO, "Server sent unrequested forward from \"%s:%d\"", 
diff --git a/common-channel.c b/common-channel.c
index 835e49314514a04a4c08264daa092d047cfa4108..7383f47a2666bb7f79f39b4514631a56e773d99f 100644
--- a/common-channel.c
+++ b/common-channel.c
@@ -32,7 +32,6 @@
 #include "circbuffer.h"
 #include "dbutil.h"
 #include "channel.h"
-#include "ssh.h"
 #include "listener.h"
 #include "runopts.h"
 #include "netio.h"
diff --git a/svr-chansession.c b/svr-chansession.c
index 6dbc8ad725d6bc7f3ca5b838550ce51a5e69fd27..22fc9545f742cb976fcd6f972eb7db2bab0c7e0b 100644
--- a/svr-chansession.c
+++ b/svr-chansession.c
@@ -634,7 +634,7 @@ static void make_connection_string(struct ChanSess *chansess) {
 static int sessioncommand(struct Channel *channel, struct ChanSess *chansess,
 		int iscmd, int issubsys) {
 
-	unsigned int cmdlen;
+	unsigned int cmdlen = 0;
 	int ret;
 
 	TRACE(("enter sessioncommand"))