--- swincdlg.c~	Tue Mar 02 00:24:32 2004
+++ swincdlg.c	Mon Mar 08 20:50:59 2004
@@ -87,11 +87,11 @@
 swincdlg_OpenFileName(int argc, VALUE* argv, VALUE mod){
 	OPENFILENAME ofn;
 	int r;
-	char buf[buffersize];
-    buf[0]=0;
+	char* buf = alloca(buffersize);
+	*buf = 0;
 
 	if(!setopenfilename(&ofn,argc,argv,OFN_FILEMUSTEXIST)) return Qfalse;
-	ofn.nMaxFile=sizeof(buf);
+	ofn.nMaxFile=buffersize;
 	ofn.lpstrFile=buf;
 
 	if(!GetOpenFileName(&ofn)){
@@ -106,13 +106,13 @@
 swincdlg_SaveFileName(int argc, VALUE* argv, VALUE mod){
 	OPENFILENAME ofn;
 	int r;
-	char buf[1024];
-    buf[0]=0;
+	char* buf = alloca(buffersize);
+	*buf = 0;
 
 	if(!setopenfilename(&ofn,argc,argv,OFN_CREATEPROMPT | OFN_OVERWRITEPROMPT))
 		return Qfalse;
 
-	ofn.nMaxFile=sizeof(buf);
+	ofn.nMaxFile=buffersize;
 	ofn.lpstrFile=buf;
 
 	if(!GetSaveFileName(&ofn)){
