--- defs.h.orig	2009-11-02 14:45:57.000000000 -0700
+++ defs.h	2009-11-02 14:18:23.000000000 -0700
@@ -4649,6 +4649,7 @@ extern int gdb_main(int, char **);
 #endif
 extern int have_partial_symbols(void); 
 extern int have_full_symbols(void);
+extern void crashcmd_filename_completion(char *);
 
 #if defined(X86) || defined(X86_64) || defined(IA64)
 #define XEN_HYPERVISOR_ARCH 
--- gdb_interface.c.orig	2009-11-02 14:46:09.000000000 -0700
+++ gdb_interface.c	2009-11-02 14:18:23.000000000 -0700
@@ -181,6 +181,7 @@ gdb_session_init(void)
 	gdb_disassemble_from_exec = 0;
 #endif
 
+	crashcmd_filename_completion("mod");
 	pc->flags |= GDB_INIT;   /* set here so gdb_interface will work */
 
         req = (struct gnu_request *)GETBUF(sizeof(struct gnu_request));
--- gdb-6.1.patch.orig	2009-11-02 14:49:30.000000000 -0700
+++ gdb-6.1.patch	2009-11-02 14:49:14.000000000 -0700
@@ -11763,3 +11763,23 @@ diff -urp gdb-6.1.orig/gdb/ChangeLog gdb
  #endif /* VI_MODE */
  
    if (rl_editing_mode == emacs_mode)
+
+--- gdb-6.1/gdb/cli/cli-cmds.c.orig	2009-11-02 14:46:42.000000000 -0700
++++ gdb-6.1/gdb/cli/cli-cmds.c	2009-11-02 14:44:24.000000000 -0700
+@@ -1307,3 +1307,16 @@ With no argument, show definitions of al
+ 				   &setlist),
+ 		      &showlist);
+ }
++
++void
++crashcmd_no_func(char *p, int i)
++{
++}
++
++void
++crashcmd_filename_completion(char *cmd)
++{
++  struct cmd_list_element *c;
++  c = add_cmd(cmd, no_class, crashcmd_no_func, "", &cmdlist);
++  set_cmd_completer (c, filename_completer);
++}
