diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ee257f676845c51dafd8dcbf0bdc568b9c8daf6..57b374d8ede543b9021b3f3ed1961d4feb39d399 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+	* lto-streamer-out.c (produce_symtab): Stream out the newly represented
+	aliases.
+
 2011-06-11  Jan Hubicka  <jh@suse.cz>
 
 	* ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying args.
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 7a2f3f02361b63b4804926286bf2f962a4c5fd62..c629a9f871b1460055be16da1fb25836fe784f35 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -2582,7 +2582,7 @@ produce_symtab (struct output_block *ob,
       if (DECL_COMDAT (node->decl)
 	  && cgraph_comdat_can_be_unshared_p (node))
 	continue;
-      if (node->alias || node->global.inlined_to)
+      if ((node->alias && !node->thunk.alias) || node->global.inlined_to)
 	continue;
       write_symbol (cache, &stream, node->decl, seen, false);
     }
@@ -2594,7 +2594,7 @@ produce_symtab (struct output_block *ob,
       if (DECL_COMDAT (node->decl)
 	  && cgraph_comdat_can_be_unshared_p (node))
 	continue;
-      if (node->alias || node->global.inlined_to)
+      if ((node->alias && !node->thunk.alias) || node->global.inlined_to)
 	continue;
       write_symbol (cache, &stream, node->decl, seen, false);
     }