diff -ruN curl-7.10.3.orig/configure.in curl-7.10.3/configure.in
--- curl-7.10.3.orig/configure.in	2002-12-21 02:54:24.000000000 +1100
+++ curl-7.10.3/configure.in	2003-01-28 15:05:43.000000000 +1100
@@ -319,6 +319,22 @@
 fi
 
 dnl **********************************************************************
+dnl Check if the operating system allows programs to write to their own argv[]
+dnl **********************************************************************
+
+AC_MSG_CHECKING([if argv can be written to])
+AC_TRY_RUN([
+int main(int argc, char ** argv) {
+	argv[0][0] = 'c';
+	return 0;
+}
+	],
+	AC_DEFINE(HAVE_WRITABLE_ARGV, 1, [Define this symbol if your OS supports changing the contents of argv])
+	AC_MSG_RESULT(yes),
+	AC_MSG_RESULT(no)
+)
+
+dnl **********************************************************************
 dnl Check for the presence of Kerberos4 libraries and headers
 dnl **********************************************************************
 
--- curl-7.10.3.orig/src/main.c	2003-01-09 02:04:42.000000000 +1100
+++ curl-7.10.3/src/main.c	2003-01-28 15:09:29.000000000 +1100
@@ -1627,10 +1627,32 @@
     case 'u':
       /* user:password  */
       GetStr(&config->userpwd, nextarg);
+#ifdef HAVE_WRITABLE_ARGV
+      /* now that GetStr has copied the contents of nextarg, wipe the next
+       * argument out so that the username:password isn't displayed in the
+       * system process list */
+      if (nextarg) {
+	  size_t len;
+
+	  len = strlen(nextarg);
+	  while (len)
+	      nextarg[--len] = ' ';
+      }
+#endif
       break;
     case 'U':
       /* Proxy user:password  */
       GetStr(&config->proxyuserpwd, nextarg);
+#ifdef HAVE_WRITABLE_ARGV
+      /* as above, hide the username password argument */
+      if (nextarg) {
+	  size_t len;
+
+	  len = strlen(nextarg);
+	  while (len)
+	      nextarg[--len] = ' ';
+      }
+#endif
       break;
     case 'v':
       config->conf ^= CONF_VERBOSE; /* talk a lot */

