diff --git a/CHANGES b/CHANGES
index 7b4b5c09db88bd1133c09b1266ad0f4ee4acc8c2..d493e640bb9109c9db81889747208d66bdf1a1e3 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+
+Daniel Stenberg (1 Apr 2009)
+- Andre Guibert de Bruet fixed a NULL pointer use in an infof() call if a
+  strdup() call failed. 
+
 Daniel Fandrich (31 Mar 2009)
 - Properly return an error code in curl_easy_recv (reported by Jim Freeman).
 
diff --git a/lib/ftp.c b/lib/ftp.c
index 0e75a424d3536510670b29b68fafcf3ebf30c6d8..5282204a79e33c844aca5bfbf10be7e76b225ca7 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -3214,7 +3214,8 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
         ftpc->prevpath=strdup("");
         free(path);
       }
-      infof(data, "Remembering we are in dir \"%s\"\n", ftpc->prevpath);
+      if(ftpc->prevpath)
+        infof(data, "Remembering we are in dir \"%s\"\n", ftpc->prevpath);
     }
     else {
       ftpc->prevpath = NULL; /* no path */