diff --git a/src/eval.c b/src/eval.c
index 06615ae..865dc3a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -731,6 +731,7 @@
 static void f_trunc __ARGS((typval_T *argvars, typval_T *rettv));
 #endif
 static void f_type __ARGS((typval_T *argvars, typval_T *rettv));
+static void f_undofile __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_values __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_virtcol __ARGS((typval_T *argvars, typval_T *rettv));
 static void f_visualmode __ARGS((typval_T *argvars, typval_T *rettv));
@@ -7825,6 +7826,7 @@
     {"trunc",		1, 1, f_trunc},
 #endif
     {"type",		1, 1, f_type},
+    {"undofile",	1, 1, f_undofile},
     {"values",		1, 1, f_values},
     {"virtcol",		1, 1, f_virtcol},
     {"visualmode",	0, 1, f_visualmode},
@@ -17584,6 +17586,23 @@
 }
 
 /*
+ * "undofile(name)" function
+ */
+    static void
+f_undofile(argvars, rettv)
+    typval_T	*argvars;
+    typval_T	*rettv;
+{
+    rettv->v_type = VAR_STRING;
+#ifdef FEAT_PERSISTENT_UNDO
+    rettv->vval.v_string = u_get_undo_file_name(get_tv_string(&argvars[0]),
+								       FALSE);
+#else
+    rettv->vval.v_string = NULL;
+#endif
+}
+
+/*
  * "values(dict)" function
  */
     static void
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index 90e11d2..cea7d49 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -7,8 +7,9 @@
 int u_savedel __ARGS((linenr_T lnum, long nlines));
 int undo_allowed __ARGS((void));
 void u_compute_hash __ARGS((char_u *hash));
-void u_read_undo __ARGS((char_u *name, char_u *hash));
+char_u *u_get_undo_file_name __ARGS((char_u *buf_ffname, int reading));
 void u_write_undo __ARGS((char_u *name, int forceit, buf_T *buf, char_u *hash));
+void u_read_undo __ARGS((char_u *name, char_u *hash));
 void u_undo __ARGS((int count));
 void u_redo __ARGS((int count));
 void undo_time __ARGS((long step, int sec, int absolute));
diff --git a/src/undo.c b/src/undo.c
index 88c0305..34140f2 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -100,7 +100,6 @@
 static void u_freeentries __ARGS((buf_T *buf, u_header_T *uhp, u_header_T **uhpp));
 static void u_freeentry __ARGS((u_entry_T *, long));
 #ifdef FEAT_PERSISTENT_UNDO
-static char_u *u_get_undo_file_name __ARGS((char_u *, int reading));
 static void corruption_error __ARGS((char *msg, char_u *file_name));
 static void u_free_uhp __ARGS((u_header_T *uhp));
 static int serialize_uep __ARGS((u_entry_T *uep, FILE *fp));
@@ -698,7 +697,7 @@
  * When "reading" is FALSE use the first name where the directory exists.
  * Returns NULL when there is no place to write or no file to read.
  */
-    static char_u *
+    char_u *
 u_get_undo_file_name(buf_ffname, reading)
     char_u	*buf_ffname;
     int		reading;
