Index: osprey-gcc-4.2.0/gcc/cp/decl.c
===================================================================
--- osprey-gcc-4.2.0/gcc/cp/decl.c	(revision 3319)
+++ osprey-gcc-4.2.0/gcc/cp/decl.c	(working copy)
@@ -1785,6 +1785,12 @@
       TREE_READONLY (olddecl) = TREE_READONLY (newdecl);
       TREE_THIS_VOLATILE (olddecl) = TREE_THIS_VOLATILE (newdecl);
       TREE_SIDE_EFFECTS (olddecl) = TREE_SIDE_EFFECTS (newdecl);
+#ifdef OPEN64_SPIN
+      if (flag_spin_file) {
+          TREE_TO_TRANSLATED_GS(olddecl) = TREE_TO_TRANSLATED_GS(newdecl);
+          FULLY_TRANSLATED_TO_GS(olddecl) = FULLY_TRANSLATED_TO_GS(newdecl);
+      }
+#endif
     }
 
   /* Merge the storage class information.  */
@@ -1899,7 +1905,12 @@
       if (! types_match)
 	{
 	  SET_DECL_LANGUAGE (olddecl, DECL_LANGUAGE (newdecl));
-	  COPY_DECL_ASSEMBLER_NAME (newdecl, olddecl);
+#ifdef OPEN64_SPIN
+	  if (flag_spin_file)
+	      SET_DECL_ASSEMBLER_NAME (olddecl, DECL_ASSEMBLER_NAME(newdecl));
+	  else 
+#endif
+	      COPY_DECL_ASSEMBLER_NAME (newdecl, olddecl);
 	  COPY_DECL_RTL (newdecl, olddecl);
 	}
       if (! types_match || new_defines_function)
@@ -1940,7 +1951,12 @@
   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);
+#ifdef OPEN64_SPIN
+  if (flag_spin_file)
+      SET_DECL_ASSEMBLER_NAME (newdecl, DECL_ASSEMBLER_NAME(olddecl));
+  else
+#endif
+      COPY_DECL_ASSEMBLER_NAME (olddecl, newdecl);
 
   /* Warn about conflicting visibility specifications.  */
   if (DECL_VISIBILITY_SPECIFIED (olddecl)
Index: osprey-gcc-4.2.0/gcc/Makefile.in
===================================================================
--- osprey-gcc-4.2.0/gcc/Makefile.in	(revision 3319)
+++ osprey-gcc-4.2.0/gcc/Makefile.in	(working copy)
@@ -832,7 +832,7 @@
 
 # This is the variable actually used when we compile. If you change this,
 # you probably want to update BUILD_CFLAGS in configure.ac
-ALL_CFLAGS = -DKEY -DFE_GNU_4_2_0 $(X_CFLAGS) $(T_CFLAGS) \
+ALL_CFLAGS = -DKEY -DOPEN64_SPIN -DFE_GNU_4_2_0 $(X_CFLAGS) $(T_CFLAGS) \
   $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
 
 uname-s := $(shell uname -s)
Index: osprey-gcc/gcc/cp/decl.c
===================================================================
--- osprey-gcc/gcc/cp/decl.c	(revision 3319)
+++ osprey-gcc/gcc/cp/decl.c	(working copy)
@@ -1661,6 +1661,12 @@
       TREE_READONLY (olddecl) = TREE_READONLY (newdecl);
       TREE_THIS_VOLATILE (olddecl) = TREE_THIS_VOLATILE (newdecl);
       TREE_SIDE_EFFECTS (olddecl) = TREE_SIDE_EFFECTS (newdecl);
+#ifdef OPEN64_SPIN
+      if (flag_spin_file) {
+          TREE_TO_TRANSLATED_GS(olddecl) = TREE_TO_TRANSLATED_GS(newdecl);
+          FULLY_TRANSLATED_TO_GS(olddecl) = FULLY_TRANSLATED_TO_GS(newdecl);
+      }
+#endif
     }
 
   /* Merge the storage class information.  */
@@ -1764,7 +1770,12 @@
       if (! types_match)
 	{
 	  SET_DECL_LANGUAGE (olddecl, DECL_LANGUAGE (newdecl));
-	  COPY_DECL_ASSEMBLER_NAME (newdecl, olddecl);
+#ifdef OPEN64_SPIN
+	  if (flag_spin_file)
+	      SET_DECL_ASSEMBLER_NAME (olddecl, DECL_ASSEMBLER_NAME(newdecl));
+	  else 
+#endif
+	      COPY_DECL_ASSEMBLER_NAME (newdecl, olddecl);
 	  COPY_DECL_RTL (newdecl, olddecl);
 	}
       if (! types_match || new_defines_function)
@@ -1805,7 +1816,12 @@
   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);
+#ifdef OPEN64_SPIN
+  if (flag_spin_file)
+      SET_DECL_ASSEMBLER_NAME (newdecl, DECL_ASSEMBLER_NAME(olddecl));
+  else
+#endif
+      COPY_DECL_ASSEMBLER_NAME (olddecl, newdecl);
 
   /* Warn about conflicting visibility specifications.  */
   if (DECL_VISIBILITY_SPECIFIED (olddecl) 
Index: osprey-gcc/gcc/Makefile.in
===================================================================
--- osprey-gcc/gcc/Makefile.in	(revision 3319)
+++ osprey-gcc/gcc/Makefile.in	(working copy)
@@ -754,7 +754,7 @@
 
 # This is the variable actually used when we compile. If you change this,
 # you probably want to update BUILD_CFLAGS in configure.ac
-ALL_CFLAGS = -DKEY $(X_CFLAGS) $(T_CFLAGS) \
+ALL_CFLAGS = -DKEY -DOPEN64_SPIN $(X_CFLAGS) $(T_CFLAGS) \
   $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
 
 uname-s := $(shell uname -s)
