Index: src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java
===================================================================
--- src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java	(revision 684941)
+++ src/main/java/org/apache/maven/plugin/assembly/archive/task/AddArtifactTask.java	(working copy)
@@ -26,8 +26,10 @@
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.archiver.ArchiveEntry;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.ResourceIterator;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -173,6 +175,17 @@
 
             try
             {
+                ResourceIterator resources = archiver.getResources();
+                while ( resources.hasNext() )
+                {
+                    ArchiveEntry entry = resources.next();
+                    if ( entry.getName().equals( outputLocation )){
+                    logger.error( "File already in archive for artifact:" + artifact.getId() );
+                    logger.info( "HINT: Check your outputFileNameMapping." );
+                        throw new ArchiverException("Could not add two files with same names: " + entry.getName());
+                    }
+                }
+
                 File artifactFile = artifact.getFile();
 
                 logger.debug( "Adding artifact: " + artifact.getId() + " with file: " + artifactFile + " to assembly location: " + outputLocation + "." );

