diff --git a/src/normal.c b/src/normal.c
index fa5e355..ca26bb3 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -81,9 +81,6 @@
 static void	nv_hat __ARGS((cmdarg_T *cap));
 static void	nv_Zet __ARGS((cmdarg_T *cap));
 static void	nv_ident __ARGS((cmdarg_T *cap));
-#ifdef FEAT_VISUAL
-static int	get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp));
-#endif
 static void	nv_tagpop __ARGS((cmdarg_T *cap));
 static void	nv_scroll __ARGS((cmdarg_T *cap));
 static void	nv_right __ARGS((cmdarg_T *cap));
@@ -5167,12 +5164,12 @@
     vim_free(buf);
 }
 
-#ifdef FEAT_VISUAL
+#if defined(FEAT_VISUAL) || defined(PROTO)
 /*
  * Get visually selected text, within one line only.
  * Returns FAIL if more than one line selected.
  */
-    static int
+    int
 get_visual_text(cap, pp, lenp)
     cmdarg_T	*cap;
     char_u	**pp;	    /* return: start of selected text */
@@ -5182,7 +5179,8 @@
 	unadjust_for_sel();
     if (VIsual.lnum != curwin->w_cursor.lnum)
     {
-	clearopbeep(cap->oap);
+	if (cap != NULL)
+	    clearopbeep(cap->oap);
 	return FAIL;
     }
     if (VIsual_mode == 'V')
@@ -5592,24 +5590,7 @@
     }
 #endif
 
-# ifdef FEAT_VISUAL
-    /*
-     * In Visual mode, use the selected text as a file name.
-     * Don't allow selection across multiple lines.
-     */
-    if (VIsual_active)
-    {
-	int	len;
-
-	if (get_visual_text(cap, &ptr, &len) == FAIL)
-	    return;
-	ptr = find_file_name_in_path(ptr, len,
-	       FNAME_MESS|FNAME_EXP|FNAME_REL, cap->count1, curbuf->b_ffname);
-    }
-    else
-# endif
-	ptr = file_name_at_cursor(FNAME_MESS|FNAME_HYP|FNAME_EXP|FNAME_REL,
-								 cap->count1);
+    ptr = grab_file_name(cap->count1);
 
     if (ptr != NULL)
     {
