Index: osprey-gcc-4.2.0/gcc/cp/decl.c
===================================================================
--- osprey-gcc-4.2.0/gcc/cp/decl.c	(revision 3309)
+++ osprey-gcc-4.2.0/gcc/cp/decl.c	(working copy)
@@ -1785,6 +1785,8 @@
       TREE_READONLY (olddecl) = TREE_READONLY (newdecl);
       TREE_THIS_VOLATILE (olddecl) = TREE_THIS_VOLATILE (newdecl);
       TREE_SIDE_EFFECTS (olddecl) = TREE_SIDE_EFFECTS (newdecl);
+      TREE_TO_TRANSLATED_GS(olddecl) = TREE_TO_TRANSLATED_GS(newdecl);
+      FULLY_TRANSLATED_TO_GS(olddecl) = FULLY_TRANSLATED_TO_GS(newdecl);
     }
 
   /* Merge the storage class information.  */
@@ -1899,7 +1901,7 @@
       if (! types_match)
 	{
 	  SET_DECL_LANGUAGE (olddecl, DECL_LANGUAGE (newdecl));
-	  COPY_DECL_ASSEMBLER_NAME (newdecl, olddecl);
+	  SET_DECL_ASSEMBLER_NAME (olddecl, DECL_ASSEMBLER_NAME(newdecl));
 	  COPY_DECL_RTL (newdecl, olddecl);
 	}
       if (! types_match || new_defines_function)
@@ -1940,7 +1942,7 @@
   TREE_ADDRESSABLE (newdecl) = TREE_ADDRESSABLE (olddecl);
   TREE_ASM_WRITTEN (newdecl) = TREE_ASM_WRITTEN (olddecl);
   DECL_COMMON (newdecl) = DECL_COMMON (olddecl);
-  COPY_DECL_ASSEMBLER_NAME (olddecl, newdecl);
+  SET_DECL_ASSEMBLER_NAME (newdecl, DECL_ASSEMBLER_NAME(olddecl));
 
   /* Warn about conflicting visibility specifications.  */
   if (DECL_VISIBILITY_SPECIFIED (olddecl)
