Index: tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(revision 1213741)
+++ tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(working copy)
@@ -70,6 +70,7 @@
         assertTypeByData("testPUBLISHER.pub", "application/x-mspublisher");
         assertTypeByData("testWORKS.wps", "application/vnd.ms-works");
         assertTypeByData("testWORKS2000.wps", "application/vnd.ms-works");
+        assertTypeByData("testWORKSSpreadsheet7.0.xlr", "application/vnd.ms-works");
         assertTypeByData("testPROJECT2003.mpp", "application/vnd.ms-project");
         assertTypeByData("testPROJECT2007.mpp", "application/vnd.ms-project");
 
Index: tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java	(revision 1213741)
+++ tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java	(working copy)
@@ -1,5 +1,5 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
+* Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
@@ -27,7 +27,9 @@
 
 import org.apache.tika.Tika;
 import org.apache.tika.config.TikaConfig;
+import org.apache.tika.detect.DefaultDetector;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.microsoft.POIFSContainerDetector;
 
 /**
  * 
@@ -149,6 +151,33 @@
     }
     
     /**
+     * Files generated by Works 7.0 Spreadsheet application use the OLE2
+     * structure and resemble Excel files (they contain a "Workbook"). They are
+     * not Excel though. The {@link POIFSContainerDetector} can detect them
+     * properly. With plain {@link MimeTypes} they are detected as Excel,
+     * because of the "Workbook" string. It's a problem we discussed in TIKA-806
+     * and agreed that we live with that. The policy is that container-based
+     * detection should trump magic-based detection. It's implemented in
+     * {@link DefaultDetector} (TIKA-786) and users who don't want to use to
+     * {@link DefaultDetector} should be aware of it.
+     * 
+     * @throws Exception
+     */
+    public void testWorks70Detection() throws Exception {
+        // this is wrong, but we live with that
+        assertTypeByData("application/vnd.ms-excel",
+                "testWORKSSpreadsheet7.0.xlr");
+        
+        // this is right, we made x-xlr a subtype of vnd.ms-excel
+        assertTypeByNameAndData("application/x-xlr",
+                "testWORKSSpreadsheet7.0.xlr");
+        
+        // with name-only, everything should be all right
+        assertTypeByName("application/x-xlr", 
+                "testWORKSSpreadsheet7.0.xlr");
+    }
+    
+    /**
      * Note - detecting container formats by mime magic is very very
      *  iffy, as we can't be sure where things will end up.
      * People really ought to use the container aware detection...
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java	(revision 1213741)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java	(working copy)
@@ -192,5 +192,22 @@
             input.close();
         }
     }
+    
+    public void testWorksSpreadsheet70() throws Exception {
+        InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testWORKSSpreadsheet7.0.xlr");
+        try {
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler(-1);
+            ParseContext context = new ParseContext();
+            context.set(Locale.class, Locale.US);
+            new OfficeParser().parse(input, handler, metadata, context);
+
+            String content = handler.toString();
+            assertTrue(content.contains("Microsoft Works"));
+        } finally {
+            input.close();
+        }
+    }
 
 }
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java	(revision 1213741)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java	(working copy)
@@ -69,6 +69,7 @@
                     POIFSDocumentType.PROJECT.type,
                     POIFSDocumentType.VISIO.type,
                     // Works isn't supported
+                    POIFSDocumentType.XLR.type, // but Works 7.0 Spreadsheet is
                     POIFSDocumentType.OUTLOOK.type,
                     MediaType.application("vnd.ms-excel.sheet.binary.macroenabled.12")
                     )));
@@ -84,6 +85,7 @@
         PROJECT("mpp", MediaType.application("vnd.ms-project")),
         VISIO("vsd", MediaType.application("vnd.visio")),
         WORKS("wps", MediaType.application("vnd.ms-works")),
+        XLR("xlr", MediaType.application("x-tika-msworks-spreadsheet")),
         OUTLOOK("msg", MediaType.application("vnd.ms-outlook"));
 
         private final String extension;
@@ -186,6 +188,7 @@
            new HSLFExtractor(context).parse(root, xhtml);
            break;
         case WORKBOOK:
+        case XLR:
            Locale locale = context.get(Locale.class, Locale.getDefault());
            new ExcelExtractor(context).parse(root, xhtml, locale);
            break;
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/POIFSContainerDetector.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/POIFSContainerDetector.java	(revision 1213741)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/POIFSContainerDetector.java	(working copy)
@@ -71,6 +71,9 @@
 
     /** Microsoft Works */
     public static final MediaType WPS = application("vnd.ms-works");
+    
+    /** Microsoft Works Spreadsheet 7.0 */
+    public static final MediaType XLR = application("x-tika-msworks-spreadsheet");
 
     /** Microsoft Outlook */
     public static final MediaType MSG = application("vnd.ms-outlook");
@@ -133,7 +136,9 @@
      */
     protected static MediaType detect(Set<String> names) {
         if (names != null) {
-            if (names.contains("Workbook")) {
+            if (names.contains("WksSSWorkBook")) {
+                return XLR; // a Works 7.0 spreadsheet file
+            } if (names.contains("Workbook")) {
                 return XLS;
             } else if (names.contains("EncryptedPackage") && 
                     names.contains("EncryptionInfo") &&
Index: tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
===================================================================
--- tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml	(revision 1213741)
+++ tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml	(working copy)
@@ -2810,6 +2810,12 @@
   <mime-type type="application/x-xfig">
     <glob pattern="*.fig"/>
   </mime-type>
+  
+  <mime-type type="application/x-tika-msworks-spreadsheet">
+    <glob pattern="*.xlr"/>
+    <sub-class-of type="application/vnd.ms-excel"/>
+  </mime-type>
+  
   <mime-type type="application/x-xpinstall">
     <glob pattern="*.xpi"/>
   </mime-type>
