diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 587a60df507..414fa467926 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-13  Hans-Peter Nilsson  <hp@axis.com>
+	    Alan Modra  <amodra@bigpond.net.au>
+
+	* nm.c (filter_symbols): Only call memcpy when from != to.
+
 2008-11-10  Tristan Gingold  <gingold@adacore.com>
 	    Alan Modra  <amodra@bigpond.net.au>
 
diff --git a/binutils/nm.c b/binutils/nm.c
index 1dbf47e84a9..e11568ab33d 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -449,7 +449,8 @@ filter_symbols (bfd *abfd, bfd_boolean dynamic, void *minisyms,
 
       if (keep)
 	{
-	  memcpy (to, from, size);
+	  if (to != from)
+	    memcpy (to, from, size);
 	  to += size;
 	}
     }