diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index deb323d95e6647f94aed966265a886458b81747f..f8c543efc386de68824fd58a130291696965b124 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -425,7 +425,7 @@ js_login(JSContext *cx, uintN argc, jsval *arglist)
 
 	putuserdat(&scfg,&client->user);
 	if(client->subscan==NULL) {
-		client->subscan=(subscan_t*)malloc(sizeof(subscan_t)*scfg.total_subs);
+		client->subscan=(subscan_t*)calloc(scfg.total_subs, sizeof(subscan_t));
 		if(client->subscan==NULL)
 			lprintf(LOG_CRIT,"!MALLOC FAILURE");
 	}