diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 69fb018fd5551d37a343b3a894aeb0ef3246652c..3a6aff1ed2f14a9272d04afb723ecc7c3ea8825c 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+1999-12-17  Tom Tromey  <tromey@cygnus.com>
+
+	* java/lang/natPosixProcess.cc (startProcess): Don't use sprintf.
+
 1999-12-16  Bryce McKinlay  <bryce@albatross.co.nz>
 
 	* java/lang/Boolean.java (Boolean(String)): Set `value' to false on a 
diff --git a/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc
index 9fa7d3378fee28d81af54c9aa8212a1ae8fadc12..9d2be527ffe135fb65f9e82cc58b9e794a00b559 100644
--- a/libjava/java/lang/natPosixProcess.cc
+++ b/libjava/java/lang/natPosixProcess.cc
@@ -168,12 +168,13 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
       if (envp)
         {
 	  // preserve PATH unless specified explicitly
-	  char *path_val = getenv("PATH");
+	  char *path_val = getenv ("PATH");
 	  environ = env;
-	  if (getenv("PATH") == NULL)
+	  if (getenv ("PATH") == NULL)
 	    {
-	      char *path_env = (char *) _Jv_Malloc (strlen(path_val) + 5 + 1);
-	      sprintf (path_env, "PATH=%s", path_val); 
+	      char *path_env = (char *) _Jv_Malloc (strlen (path_val) + 5 + 1);
+	      strcpy (path_env, "PATH=");
+	      strcat (path_env, path_val);
 	      putenv (path_env);
 	    }
 	}