diff --git a/src/port/strdup.c b/src/port/strdup.c
index 2854b660110..22f842da16d 100644
--- a/src/port/strdup.c
+++ b/src/port/strdup.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/strdup.c,v 1.7 2005/07/28 04:03:14 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/port/strdup.c,v 1.8 2005/09/27 04:53:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,10 +19,12 @@
 
 
 char *
-strdup(char const * string)
+strdup(const char *string)
 {
 	char	   *nstr;
 
-	nstr = strcpy((char *) malloc(strlen(string) + 1), string);
+	nstr = (char *) malloc(strlen(string) + 1);
+	if (nstr)
+		strcpy(nstr, string);
 	return nstr;
 }