Hello, etags doesn't recognize a Fortran 90 function or subroutine if this is declared recursive. I've created a patch for etags.c (version included in emacs 23.1) that fixes the problem. As I'm not familiar with the etags source code, I'm not sure if I did it the way it should be done. For me the patch works and I have not noticed any side effects so far, please check if this makes sense to you. Example on reproducing the problem: For the included file 'foo.f90' etags will produce: TAGS: foo.f90,48 subroutine sub(1,0 integer function func(5,50 As you see, some functions and subroutines were missed. The patched version will produce: TAGS: subroutine sub(1,0 integer function func(5,50 recursive subroutine rsub(12,127 recursive integer function rfunc(16,189 recursive function rfunc2(22,278 This included all functions and subroutines. Patch 'emacs-23.1-etags.patch' included (to be applied in emacs-23.1/lib-src/) Kind Regards Kester -- Program-Co-Chair LinuxTag 2010 Free Conference Program LinuxTag 2010: Where .com meets .org - kester@linuxtag.org