diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index cf0ed821d0c7af24e75b65ccbce796c12bb0a052..174137883b7f41e62c501b5d9ce5329459006601 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -122,6 +122,22 @@ extern int	thread_suid_broken;			/* NPTL is no longer broken */
 	#define JS_DestroyScript(cx,script)
 #endif
 
+#define JSSTRING_TO_STRING(cx, str, ret) \
+{ \
+	size_t			len; \
+	size_t			pos; \
+	const jschar	*val; \
+\
+	ret[0]=0; \
+	if((val=JS_GetStringCharsAndLength(cx, str, &len))) { \
+		if((ret=alloca(len+1))) { \
+			for(pos=0; pos<len; pos++) \
+				ret[pos]=val[pos]; \
+			ret[len]=0; \
+		} \
+	} \
+} \
+
 #endif
 
 #ifdef USE_CRYPTLIB