diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c
index 79d0a4697b2bdb4218a43cf119bb7d2a6e84c26e..15cb8d3ab1c279db1ec12e9c634f83ba7774bad3 100644
--- a/src/server/handler_coke.c
+++ b/src/server/handler_coke.c
@@ -21,7 +21,7 @@
 #include <pthread.h>
 
 #define READ_TIMEOUT	2	// 2 seconds for ReadChar
-#define TRACE_COKE	1
+#define TRACE_COKE	0
 
 #if TRACE_COKE
 # define TRACE(v...) do{printf("%s: ",__func__);printf(v);}while(0)
diff --git a/src/server/main.c b/src/server/main.c
index faf07e3e94108bb7f9c7f29a6a16285604befcf4..590e197419bdf5ef1d967447e5e8c4114def4242 100644
--- a/src/server/main.c
+++ b/src/server/main.c
@@ -151,7 +151,8 @@ int main(int argc, char *argv[])
 	
 	Server_Start();
 	
-	pthread_kill(gTimerThread, SIGKILL);
+	if(gTimerThread)
+		pthread_kill(gTimerThread, SIGKILL);
 
 	return 0;
 }
diff --git a/src/server/server.c b/src/server/server.c
index 21740fd87d126bf4f0af028d76758ea903444071..32e4c10514ad09f1b00212074898d5ae94d4d638 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -555,12 +555,18 @@ void Server_Cmd_AUTHIDENT(tClient *Client, char *Args)
 
 	// Check if trusted (only works with INET sockets at present)
 	len = sizeof(client_addr);
-	if ( ! getpeername(Client->Socket, (struct sockaddr*)&client_addr, &len) ) {
-		// throw an error
+	if( getpeername(Client->Socket, (struct sockaddr*)&client_addr, &len) == -1 ) {
+		Debug(Client, "500 getpeername() failed\n");
+		perror("Getting AUTHIDENT peer name");
+		sendf(Client->Socket, "500 getpeername() failed\n");
+		return ;
 	}
 
 	client_ip = client_addr.sin_addr.s_addr;
-	if ( ! (ntohl(client_ip) == 0x7F000001 || ( (ntohl(client_ip) & IDENT_TRUSTED_NETMASK) == IDENT_TRUSTED_NETWORK ) )) {
+	if(giDebugLevel >= 2) {
+		Debug(Client, "client_ip = %x, ntohl(client_ip) = %x", client_ip, ntohl(client_ip));
+	}
+	if( ntohl(client_ip) != 0x7F000001 && (ntohl(client_ip) & IDENT_TRUSTED_NETMASK) != IDENT_TRUSTED_NETWORK ) {
 			if(giDebugLevel)
 				Debug(Client, "Untrusted client attempting to AUTHIDENT");
 			sendf(Client->Socket, "401 Untrusted\n");
@@ -569,8 +575,9 @@ void Server_Cmd_AUTHIDENT(tClient *Client, char *Args)
 
 	// Get username via IDENT
 	username = ident_id(Client->Socket, ident_timeout);
-	if (!username) {
+	if( !username ) {
 		sendf(Client->Socket, "403 Authentication failure: IDENT auth timed out\n");
+		return ;
 	}
 
 	// Get UID