diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index e8068f456..835fd9278 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* spu/crtn.S: Add dummy to ensure nothing gets linked at address 0.
+	* spu/crti.S: Remove nop.
+
 2009-05-08  Nick Clifton  <nickc@redhat.com>
 
 	* mn10300/sim.ld: Add missing section names such as .bss.*
diff --git a/libgloss/spu/crti.S b/libgloss/spu/crti.S
index 8e7f55d57..0e79a3937 100644
--- a/libgloss/spu/crti.S
+++ b/libgloss/spu/crti.S
@@ -46,11 +46,6 @@
 
 	.section	".init"
 	.align 2
-
-        # To make sure the address of _init is not zero, because
-        # the default linker entry point is 0.       
-        nop
-
 	.global	_init
 	.type	_init, @function
 _init:
diff --git a/libgloss/spu/crtn.S b/libgloss/spu/crtn.S
index 8812f1f3e..ef4edfcf6 100644
--- a/libgloss/spu/crtn.S
+++ b/libgloss/spu/crtn.S
@@ -53,4 +53,12 @@
 	
 	FUNC_END
 	
+	# To ensure nothing is linked at address 0, provide a dummy
+	# .interrupt section.  This is in crtn.S to make sure any
+	# user-provided real .interrupt section will get linked
+	# in front of this dummy.
+	.section	".interrupt","ax"
+	.align 2
+	heq $0,$0
+
 # end of crtn.S