+2002-11-08  Jim Blandy  <jimb@redhat.com>
+
+       * dwarf2read.c (read_func_scope): Restore local_symbols and
+       param_symbols after we finish the function context.  (Based on a
+       patch from David Edelsohn.)
+
 2002-11-08  David Carlton  <carlton@math.stanford.edu>
 
        * linespec.c (symbol_found): New function.
 
   /* Make a block for the local symbols within.  */
   finish_block (new->name, &local_symbols, new->old_blocks,
                lowpc, highpc, objfile);
+  
+  /* In C++, we can have functions nested inside functions (e.g., when
+     a function declares a class that has methods).  This means that
+     when we finish processing a function scope, we may need to go
+     back to building a containing block's symbol lists.  */
+  local_symbols = new->locals;
+  param_symbols = new->params;
+
   list_in_scope = &file_symbols;
 }