diff --git a/component/file/buildout.cfg b/component/file/buildout.cfg
index f861eee6d7cef4824f55b9fc9f5c234e101250d8..432409cc25ba7cd75f7c1cd83cc7ba59c5a5b0d4 100644
--- a/component/file/buildout.cfg
+++ b/component/file/buildout.cfg
@@ -6,6 +6,13 @@ parts = file
 extends =
   ../zlib/buildout.cfg
 
+[file-msooxml]
+recipe = slapos.recipe.build:download
+url = ${:_profile_base_location_}/msooxml
+md5sum = c889ad135cbfb343db36b729a3897432
+location = ${buildout:parts-directory}/${:_buildout_section_name_}
+filename = msooxml
+
 [file]
 recipe = slapos.recipe.cmmi
 url = http://ftp.icm.edu.pl/packages/file/file-5.32.tar.gz
@@ -15,3 +22,7 @@ configure-options =
 environment =
   CPPFLAGS=-I${zlib:location}/include
   LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
+pre-configure =
+# patch for fix msooxml files detect correctly
+  test -f ./magic/Magdir/msooxml
+  cp ${file-msooxml:location}/msooxml ./magic/Magdir/
diff --git a/component/file/msooxml b/component/file/msooxml
new file mode 100644
index 0000000000000000000000000000000000000000..f8431dc86f5a15d086131a1897f95d78e71e4969
--- /dev/null
+++ b/component/file/msooxml
@@ -0,0 +1,45 @@
+#------------------------------------------------------------------------------
+# $File: msooxml,v 1.5 2014/08/05 07:38:45 christos Exp $
+# msooxml:  file(1) magic for Microsoft Office XML
+# From: Ralf Brown <ralf.brown@gmail.com>
+
+# .docx, .pptx, and .xlsx are XML plus other files inside a ZIP
+#   archive.  The first member file is normally "[Content_Types].xml".
+#   but some libreoffice generated files put this later. Perhaps skip
+#   the "[Content_Types].xml" test?
+# Since MSOOXML doesn't have anything like the uncompressed "mimetype"
+#   file of ePub or OpenDocument, we'll have to scan for a filename
+#   which can distinguish between the three types
+
+# start by checking for ZIP local file header signature
+0               string          PK\003\004
+!:strength +10
+# make sure the first file is correct
+>0x1E           regex           \\[Content_Types\\]\\.xml|_rels/\\.rels
+# skip to the second local file header
+# since some documents include a 520-byte extra field following the file
+# header, we need to scan for the next header
+>>(18.l+49)     search/2000     PK\003\004
+# now skip to the *third* local file header; again, we need to scan due to a
+# 520-byte extra field following the file header
+>>>&26          search/1000     PK\003\004
+# and check the subdirectory name to determine which type of OOXML
+# file we have.  Correct the mimetype with the registered ones:
+# http://technet.microsoft.com/en-us/library/cc179224.aspx
+>>>>&26         string          word/           Microsoft Word 2007+
+!:mime application/vnd.openxmlformats-officedocument.wordprocessingml.document
+>>>>&26         string          ppt/            Microsoft PowerPoint 2007+
+!:mime application/vnd.openxmlformats-officedocument.presentationml.presentation
+>>>>&26         string          xl/             Microsoft Excel 2007+
+!:mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
+
+>>1104          search/300      PK\003\004
+# and check the subdirectory name to determine which type of OOXML
+# file we have.  Correct the mimetype with the registered ones:
+# http://technet.microsoft.com/en-us/library/cc179224.aspx
+>>>&26          string          word/           Microsoft Word 2007+
+!:mime application/vnd.openxmlformats-officedocument.wordprocessingml.document
+>>>&26          string          ppt/            Microsoft PowerPoint 2007+
+!:mime application/vnd.openxmlformats-officedocument.presentationml.presentation
+>>>&26          string          xl/             Microsoft Excel 2007+
+!:mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet