Index: tika-parsers/src/main/java/org/apache/tika/detect/ContainerAwareDetector.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/detect/ContainerAwareDetector.java	(revision 987225)
+++ tika-parsers/src/main/java/org/apache/tika/detect/ContainerAwareDetector.java	(working copy)
@@ -79,7 +79,13 @@
         // Is this an ole2 file?
         long ole2Signature = LittleEndian.getLong(first8, 0);
         if(ole2Signature == HeaderBlockConstants._signature) {
-            return poifsDetector.detect(input, metadata);
+        	try {
+        		return poifsDetector.detect(input, metadata);
+        	} catch (IOException e) {
+        		// this may happen on broken or truncated files, no need to throw 
+        		// the exception the fallback detector may still return something usable
+        		input = TikaInputStream.get(input.getFile());
+        	}
         }
         
         // Not a supported container, ask our fall back
Index: tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(revision 987225)
+++ tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(working copy)
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.detect;
 
+import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
 import junit.framework.TestCase;
@@ -26,6 +27,8 @@
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.mime.MediaType;
+import org.apache.tika.mime.MimeTypes;
+import org.apache.tika.mime.MimeTypesFactory;
 
 /**
  * Junit test class for {@link ContainerAwareDetector}
@@ -154,4 +157,16 @@
                 d.detect(tis, new Metadata())
         );
     }
+    
+    public void testTruncatedExcelFile() throws Exception {
+    	MimeTypes mimeTypes = MimeTypesFactory.create("tika-mimetypes.xml");
+		ContainerAwareDetector detector = new ContainerAwareDetector(mimeTypes);
+		InputStream input = getTestDoc("testEXCEL.xls");
+		// load first 400 bytes into a byte array
+		byte [] buffer = new byte[400];
+		assertEquals(400, input.read(buffer));
+		Metadata metadata = new Metadata();
+		MediaType mt = detector.detect(new ByteArrayInputStream(buffer), metadata);
+		assertEquals(MediaType.application("x-tika-msoffice"),mt);
+    }
 }
