diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 0b895abdb6304b70aec70c25003f4bab52cf984c..6948387e95c4e52e9297bdf422f0de1627f4b8e0 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -121,10 +121,9 @@ extern int	thread_suid_broken;			/* NPTL is no longer broken */
 \
 	if(JSSTSlenptr==NULL) \
 		JSSTSlenptr=&JSSTSlen; \
-	(ret)=NULL; \
 	if((str) != NULL) { \
 		if((JSSTSstrval=JS_GetStringCharsAndLength((cx), (str), JSSTSlenptr))) { \
-			if(*sizeptr < (*JSSTSlenptr+1)) { \
+			if((*sizeptr < (*JSSTSlenptr+1 )) || (ret)==NULL) { \
 				*sizeptr = *JSSTSlenptr+1; \
 				if((JSSTStmpptr=(char *)realloc((ret), *sizeptr))==NULL) { \
 					JS_ReportError(cx, "Error reallocating %lu bytes at %s:%d", (*JSSTSlenptr)+1, getfname(__FILE__), __LINE__); \