Index: gdb-6.1/gdb/valops.c
===================================================================
--- gdb-6.1.orig/gdb/valops.c	2004-04-19 11:45:42.000000000 -0400
+++ gdb-6.1/gdb/valops.c	2004-04-25 01:23:25.000000000 -0400
@@ -2382,8 +2382,10 @@ check_field_in (struct type *type, const
 	return 1;
     }
 
+  /* Check each baseclass.  Call check_typedef, which will follow typedefs
+     and do opaque/stub type resolution.  */
   for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
-    if (check_field_in (TYPE_BASECLASS (type, i), name))
+    if (check_field_in (check_typedef (TYPE_BASECLASS (type, i)), name))
       return 1;
 
   return 0;
Index: gdb-6.1/gdb/dwarf2read.c
===================================================================
--- gdb-6.1.orig/gdb/dwarf2read.c	2004-03-16 17:46:05.000000000 -0500
+++ gdb-6.1/gdb/dwarf2read.c	2004-04-25 01:20:57.000000000 -0400
@@ -1706,8 +1706,13 @@ add_partial_structure (struct partial_di
 	    {
 	      actual_class_name = class_name_from_physname (child_pdi.name);
 	      if (actual_class_name != NULL)
-		struct_pdi->name = actual_class_name;
-	      break;
+		{
+		  struct_pdi->name = actual_class_name;
+		  break;
+		}
+	      else
+		next_child = locate_pdi_sibling (&child_pdi, next_child,
+						 abfd, cu);
 	    }
 	  else
 	    {
