diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c
index 2d5485a95c22a183cd51f7aa17d1c6ed5da46e62..186f484432d0b832919b7d826e537bf48ea97655 100644
--- a/src/sbbs3/jsexec.c
+++ b/src/sbbs3/jsexec.c
@@ -492,6 +492,7 @@ long js_exec(const char *fname, char** args)
 	uint		line_no;
 	char		path[MAX_PATH+1];
 	char		line[1024];
+	size_t		len;
 	char*		js_buf=NULL;
 	size_t		js_buflen;
 	JSObject*	js_scope=NULL;
@@ -561,13 +562,14 @@ long js_exec(const char *fname, char** args)
 		if(line_no==1 && strncmp(line,"#!",2)==0)
 			strcpy(line,"\n");	/* To keep line count correct */
 #endif
-		if((js_buf=realloc(js_buf,js_buflen+strlen(line)))==NULL) {
+		len=strlen(line);
+		if((js_buf=realloc(js_buf,js_buflen+len))==NULL) {
 			fprintf(errfp,"!Error allocating %u bytes of memory\n"
-				,js_buflen+strlen(line));
+				,js_buflen+len);
 			return(-1);
 		}
-		memcpy(js_buf+js_buflen,line,strlen(line));
-		js_buflen+=strlen(line);
+		memcpy(js_buf+js_buflen,line,len);
+		js_buflen+=len;
 	}
 	if((js_script=JS_CompileScript(js_cx, js_scope, js_buf, js_buflen, fname==NULL ? NULL : path, 1))==NULL) {
 		fprintf(errfp,"!Error compiling script from %s\n",path);