diff --git a/src/sbbs3/nopen.c b/src/sbbs3/nopen.c
index 0e5fb789b27d29132bbc2ade7c639d33eb2a029e..c49ded7b30fcf6bde53f2328d2419927d36d1183 100644
--- a/src/sbbs3/nopen.c
+++ b/src/sbbs3/nopen.c
@@ -8,7 +8,7 @@
  * @format.tab-size 4		(Plain Text/Source Code File Header)			*
  * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
  *																			*
- * Copyright 2007 Rob Swindell - http://www.synchro.net/copyright.html		*
+ * Copyright 2010 Rob Swindell - http://www.synchro.net/copyright.html		*
  *																			*
  * This program is free software; you can redistribute it and/or			*
  * modify it under the terms of the GNU General Public License				*
@@ -74,7 +74,7 @@ int nopen(const char* str, int access)
 /****************************************************************************/
 FILE* fnopen(int* fd, const char* str, int access)
 {
-	char	mode[128];
+	char*	mode;
 	int		file;
 	FILE *	stream;
 
@@ -86,19 +86,19 @@ FILE* fnopen(int* fd, const char* str, int access)
 
     if(access&O_APPEND) {
         if((access&O_RDWR)==O_RDWR)
-            strcpy(mode,"a+");
+            mode="a+";
         else
-            strcpy(mode,"a"); 
+            mode="a"; 
 	} else if(access&(O_TRUNC|O_WRONLY)) {
 		if((access&O_RDWR)==O_RDWR)
-			strcpy(mode,"w+");
+			mode="w+";
 		else
-			strcpy(mode,"w");
+			mode="w";
 	} else {
         if((access&O_RDWR)==O_RDWR)
-            strcpy(mode,"r+");
+            mode="r+";
         else
-            strcpy(mode,"r"); 
+            mode="r"; 
 	}
     stream=fdopen(file,mode);
     if(stream==NULL) {