Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java	(revision 1403717)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java	(working copy)
@@ -202,7 +202,7 @@
             }
 
             handleEmbeddedResource(
-                  TikaInputStream.get(pic.getData()), null,
+                  TikaInputStream.get(pic.getData()), null, null,
                   mediaType, xhtml, false);
         }
     }
@@ -234,7 +234,7 @@
                         mediaType = "application/vnd.ms-excel";
                      }
                      handleEmbeddedResource(
-                           stream, Integer.toString(oleShape.getObjectID()),
+                           stream, Integer.toString(oleShape.getObjectID()), null,
                            mediaType, xhtml, false);
                   } finally {
                      stream.close();
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java	(revision 1403717)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OutlookExtractor.java	(working copy)
@@ -234,7 +234,7 @@
                if(attachment.attachData != null) {
                   handleEmbeddedResource(
                         TikaInputStream.get(attachment.attachData.getValue()),
-                        filename,
+                        filename, null,
                         null, xhtml, true
                   );
                }
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java	(revision 1403717)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java	(working copy)
@@ -577,7 +577,7 @@
                     
                     // Handle the embeded resource
                     extractor.handleEmbeddedResource(
-                          stream, null, mimeType,
+                          stream, null, null, mimeType,
                           handler, true
                     );
                  }
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java	(revision 1403717)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java	(working copy)
@@ -84,7 +84,8 @@
     }
     
     protected void handleEmbeddedResource(TikaInputStream resource, String filename,
-          String mediaType, XHTMLContentHandler xhtml, boolean outputHtml)
+                                          String relationshipID, String mediaType, XHTMLContentHandler xhtml,
+                                          boolean outputHtml)
           throws IOException, SAXException, TikaException {
        try {
            Metadata metadata = new Metadata();
@@ -92,6 +93,9 @@
                metadata.set(Metadata.TIKA_MIME_FILE, filename);
                metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
            }
+           if (relationshipID != null) {
+               metadata.set(Metadata.EMBEDDED_RELATIONSHIP_ID, relationshipID);
+           }
            if(mediaType != null) {
                metadata.set(Metadata.CONTENT_TYPE, mediaType);
            }
@@ -122,7 +126,7 @@
             try {
                 ZipContainerDetector detector = new ZipContainerDetector();
                 MediaType type = detector.detect(stream, new Metadata());
-                handleEmbeddedResource(stream, null, type.toString(), xhtml, true);
+                handleEmbeddedResource(stream, null, dir.getName(), type.toString(), xhtml, true);
                 return;
             } finally {
                 stream.close();
@@ -133,6 +137,7 @@
 
         // What kind of document is it?
         Metadata metadata = new Metadata();
+        metadata.set(Metadata.EMBEDDED_RELATIONSHIP_ID, dir.getName());
         POIFSDocumentType type = POIFSDocumentType.detectType(dir);
         TikaInputStream embedded = null;
 
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java	(revision 1403717)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/WordExtractor.java	(working copy)
@@ -196,8 +196,8 @@
              Field field = document.getFields().getFieldByStartOffset(FieldsDocumentPart.MAIN,
                                                                       cr.getStartOffset());
              if (field != null && field.getType() == 58) {
-                // Embedded Object: add a <div
-               // embedded="name"/> so consumer can see where
+               // Embedded Object: add a <div
+               // class="embedded" id="_X"/> so consumer can see where
                // in the main text each embedded document
                // occurred:
                String id = "_" + field.getMarkSeparatorCharacterRun(r).getPicOffset();
@@ -422,7 +422,7 @@
        // (Only expose each individual image once) 
        if(! pictures.hasOutput(picture)) {
           TikaInputStream stream = TikaInputStream.get(picture.getContent());
-          handleEmbeddedResource(stream, filename, mimeType, xhtml, false);
+          handleEmbeddedResource(stream, filename, null, mimeType, xhtml, false);
           pictures.recordOutput(picture);
        }
     }
Index: tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
===================================================================
--- tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java	(revision 1403717)
+++ tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java	(working copy)
@@ -188,7 +188,7 @@
             // ChemDraw file
             File expected1 = new File(tempFile, "MBD002B040A.cdx");
             // OLE10Native
-            File expected2 = new File(tempFile, "file5");
+            File expected2 = new File(tempFile, "MBD002B0FA6_file5");
             // Image of one of the embedded resources
             File expected3 = new File(tempFile, "file0.emf");
             
Index: tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
===================================================================
--- tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java	(revision 1403717)
+++ tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java	(working copy)
@@ -705,7 +705,7 @@
             }
 
             String relID = metadata.get(Metadata.EMBEDDED_RELATIONSHIP_ID);
-            if (relID != null) {
+            if (relID != null && !name.startsWith(relID)) {
               name = relID + "_" + name;
             }
 
