diff -Naur grace-5.1.22/src/editpwin.c grace-5.1.22.new/src/editpwin.c
--- grace-5.1.22/src/editpwin.c	2006-06-03 17:19:52.000000000 -0400
+++ grace-5.1.22.new/src/editpwin.c	2008-07-26 12:45:21.000000000 -0400
@@ -776,12 +776,12 @@
  */
 void do_ext_editor(int gno, int setno)
 {
-    char *fname, ebuf[256];
+    char fname[64], ebuf[256];
     FILE *cp;
     int save_autos;
 
-    fname = tmpnam(NULL);
-    cp = grace_openw(fname);
+    strcpy(fname, "grace-XXXXXX");
+    cp = fdopen(mkstemp(fname), "wb");
     if (cp == NULL) {
         return;
     }
diff -Naur grace-5.1.22/src/plotone.c grace-5.1.22.new/src/plotone.c
--- grace-5.1.22/src/plotone.c	2005-05-19 16:30:25.000000000 -0400
+++ grace-5.1.22.new/src/plotone.c	2008-07-26 12:45:40.000000000 -0400
@@ -121,19 +121,27 @@
             sprintf(print_file, "%s.%s", get_docbname(), dev.fext);
         }
         strcpy(fname, print_file);
+	prstream = grace_openw(fname);
     } else {
+        int hdfd;
         s = get_print_cmd();
         if (s == NULL || s[0] == '\0') {
             errmsg("No print command defined, output aborted");
             return;
         }
-        tmpnam(fname);
-        /* VMS doesn't like extensionless files */
-        strcat(fname, ".prn");
+	strcpy(fname, "grace-hardcopy-XXXXXX");
+	hdfd=mkstemp(fname);
+	if (hdfd == -1) {
+	  errmsg("Could not create a temporary file, output aborted.");
+	  return;
+	}
+	prstream = fdopen(hdfd, "wb");
+	if (prstream == NULL) {
+	  errmsg("Could not create a temporary file, output aborted.");
+	  return;
+	}
     }
     
-    prstream = grace_openw(fname);
-    
     if (prstream == NULL) {
         return;
     }
