diff --git a/xapian-applications/omega/Makefile.am b/xapian-applications/omega/Makefile.am
index 59f44a2..1da1398 100644
--- a/xapian-applications/omega/Makefile.am
+++ b/xapian-applications/omega/Makefile.am
@@ -70,12 +70,13 @@ EXTRA_DIST =\
 	xapian-omega.spec
 
 AM_CPPFLAGS = \
+	-I/usr/include/wv2 \
 	-DCONFIGFILE_SYSTEM=\"$(sysconfdir)/omega.conf\" \
 	-DPKGLIBBINDIR=\"$(pkglibbindir)\"
 AM_CXXFLAGS += $(XAPIAN_CXXFLAGS)
 
 pkglibbindir = $(pkglibdir)/bin
-pkglibbin_PROGRAMS = omega
+pkglibbin_PROGRAMS = omega omindex_wv
 dist_pkglibbin_SCRIPTS = outlookmsg2html
 bin_PROGRAMS = omindex scriptindex
 dist_bin_SCRIPTS = dbi2omega htdig2omega mbox2omega
@@ -94,10 +95,11 @@ noinst_HEADERS = omega.h query.h cgiparam.h\
  md5.h md5wrap.h xmlparse.h metaxmlparse.h values.h utf8convert.h\
  namedentities.h pkglibbindir.h datematchdecider.h sample.h strcasecmp.h\
  utf8truncate.h diritor.h runfilter.h freemem.h xpsxmlparse.h transform.h\
- weight.h svgparse.h urlencode.h unixperm.h
+ weight.h svgparse.h urlencode.h unixperm.h worker.h worker_comms.h wv.h
 
 # headers maintained in xapian-core
 noinst_HEADERS +=\
+	common/closefrom.h\
 	common/gnu_getopt.h\
 	common/msvc_dirent.h\
 	common/noreturn.h\
@@ -135,12 +137,16 @@ omindex_SOURCES = omindex.cc myhtmlparse.cc htmlparse.cc\
  common/getopt.cc commonhelp.cc utils.cc hashterm.cc loadfile.cc md5.cc\
  md5wrap.cc xmlparse.cc metaxmlparse.cc utf8convert.cc sample.cc diritor.cc\
  runfilter.cc freemem.cc common/msvc_dirent.cc xpsxmlparse.cc common/str.cc\
- pkglibbindir.cc svgparse.cc urlencode.cc
+ pkglibbindir.cc svgparse.cc common/closefrom.cc worker.cc worker_comms.cc\
+ urlencode.cc
 if NEED_MKDTEMP
 omindex_SOURCES += portability/mkdtemp.cc
 endif
 omindex_LDADD = $(MAGIC_LIBS) $(XAPIAN_LIBS)
 
+omindex_wv_SOURCES = module.cc worker_comms.cc wv.cc
+omindex_wv_LDADD = -lwv2 $(XAPIAN_LIBS)
+
 scriptindex_SOURCES = scriptindex.cc myhtmlparse.cc htmlparse.cc\
  common/getopt.cc commonhelp.cc utils.cc hashterm.cc loadfile.cc\
  common/safe.cc common/stringutils.cc utf8convert.cc utf8truncate.cc
diff --git a/xapian-applications/omega/debian/control.in b/xapian-applications/omega/debian/control.in
index 6b72238..3798892 100644
--- a/xapian-applications/omega/debian/control.in
+++ b/xapian-applications/omega/debian/control.in
@@ -3,7 +3,7 @@ Section: web
 Priority: optional
 Maintainer: Olly Betts <olly@survex.com>
 Build-Depends: @BUILD_DEPS@ debhelper (>= 7), autotools-dev, libpcre3-dev,
-    libmagic-dev,
+    libmagic-dev, libwv2-dev,
     libxapian-dev (>= 1.2.0-2~)
 Standards-Version: 3.9.1
 Homepage: http://xapian.org/
diff --git a/xapian-applications/omega/debian/xapian-omega.install b/xapian-applications/omega/debian/xapian-omega.install
index 66f7de5..e084ec8 100644
--- a/xapian-applications/omega/debian/xapian-omega.install
+++ b/xapian-applications/omega/debian/xapian-omega.install
@@ -7,6 +7,7 @@ usr/bin/omindex
 usr/bin/scriptindex
 usr/lib/xapian-omega/bin/omega usr/lib/cgi-bin/omega
 usr/lib/xapian-omega/bin/outlookmsg2html
+usr/lib/xapian-omega/bin/omindex_wv
 usr/share/images
 etc/omega.conf
 usr/share/man
diff --git a/xapian-applications/omega/omindex.cc b/xapian-applications/omega/omindex.cc
index c506fea..4ed64c5 100644
--- a/xapian-applications/omega/omindex.cc
+++ b/xapian-applications/omega/omindex.cc
@@ -59,6 +59,7 @@
 #include "utf8convert.h"
 #include "utils.h"
 #include "values.h"
+#include "worker.h"
 #include "xmlparse.h"
 #include "xpsxmlparse.h"
 
@@ -76,6 +77,8 @@ using namespace std;
 #define PROG_NAME "omindex"
 #define PROG_DESC "Index static website data via the filesystem"
 
+Worker wv_worker("omindex_wv");
+
 static bool skip_duplicates = false;
 static bool follow_symlinks = false;
 static bool spelling = false;
@@ -626,6 +629,11 @@ index_file(const string &file, const string &url, DirectoryIterator & d,
 	    } catch (ReadError) {
 		// It's probably best to index the document even if this fails.
 	    }
+	} else if (mimetype == "application/msword") {
+	    if (!wv_worker.extract(file, dump, title, keywords, author)) {
+		skip(file, "libwv2 failed");
+		return;
+	    }
 	} else if (mimetype == "application/vnd.ms-excel") {
 	    string cmd = "xls2csv -c' ' -q0 -dutf-8 " + shell_protect(file);
 	    try {
@@ -1372,7 +1380,7 @@ main(int argc, char **argv)
     mime_map["obj"] = "ignore";
     mime_map["so"] = "ignore";
 
-    commands["application/msword"] = "antiword -mUTF-8.txt ";
+    //commands["application/msword"] = "antiword -mUTF-8.txt ";
     commands["application/vnd.ms-powerpoint"] = "catppt -dutf-8 ";
     // Looking at the source of wpd2html and wpd2text I think both output
     // UTF-8, but it's hard to be sure without sample Unicode .wpd files

