diff --git a/src/sbbs3/showstat.c b/src/sbbs3/showstat.c
index e548052370458c3440cfc9ac61d63f7d1507ba00..96cc2d794112a0115c92c0242057b1dc705c7b8d 100644
--- a/src/sbbs3/showstat.c
+++ b/src/sbbs3/showstat.c
@@ -122,16 +122,21 @@ int main(int argc, char **argv)
 				t = msg->msg.client_on.client.time; /* sigh */
 				msg->msg.client_on.client.protocol = msg->msg.client_on.strdata;
 				msg->msg.client_on.client.user = strchr(msg->msg.client_on.strdata, 0)+1;
-				printf("Client %s%s: sock: %d\n addr: %s\n host: %s\n port: %" PRIu16 "\n %s at %s via %s\n",
-					msg->msg.client_on.on ? "on" : "off",
-					msg->msg.client_on.update ? " update" : "",
-					msg->msg.client_on.sock,
-					msg->msg.client_on.client.addr,
-					msg->msg.client_on.client.host,
-					msg->msg.client_on.client.port,
-					msg->msg.client_on.client.user,
-					ctime(&t),
-					msg->msg.client_on.client.protocol);
+				if (msg->msg.client_on.on) {
+					printf("Client %s%s: sock: %d\n addr: %s\n host: %s\n port: %" PRIu16 "\n %s at %s via %s\n",
+						msg->msg.client_on.on ? "on" : "off",
+						msg->msg.client_on.update ? " update" : "",
+						msg->msg.client_on.sock,
+						msg->msg.client_on.client.addr,
+						msg->msg.client_on.client.host,
+						msg->msg.client_on.client.port,
+						msg->msg.client_on.client.user,
+						ctime(&t),
+						msg->msg.client_on.client.protocol);
+				}
+				else {
+					printf("Client off: sock: %d\n", msg->msg.client_on.sock);
+				}
 				break;
 			case STATUS_ERRORMSG:
 				printf("%d - %s\n", msg->msg.errormsg.level, msg->msg.errormsg.msg);