diff --git a/configure b/configure
index 494ba36e68b37c42742c9650efaabbf5e3fe6935..5c88de3e11f6b06f991fcf53b26742db10b8c780 100755
--- a/configure
+++ b/configure
@@ -1707,6 +1707,7 @@ enable_x3daudio1_4
 enable_x3daudio1_5
 enable_x3daudio1_6
 enable_x3daudio1_7
+enable_xactengine3_1
 enable_xactengine3_2
 enable_xactengine3_3
 enable_xactengine3_4
@@ -16638,6 +16639,7 @@ then
     enable_x3daudio1_5=${enable_x3daudio1_5:-no}
     enable_x3daudio1_6=${enable_x3daudio1_6:-no}
     enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+    enable_xactengine3_1=${enable_xactengine3_1:-no}
     enable_xactengine3_2=${enable_xactengine3_2:-no}
     enable_xactengine3_3=${enable_xactengine3_3:-no}
     enable_xactengine3_4=${enable_xactengine3_4:-no}
@@ -21373,6 +21375,7 @@ wine_fn_config_makefile dlls/x3daudio1_4 enable_x3daudio1_4
 wine_fn_config_makefile dlls/x3daudio1_5 enable_x3daudio1_5
 wine_fn_config_makefile dlls/x3daudio1_6 enable_x3daudio1_6
 wine_fn_config_makefile dlls/x3daudio1_7 enable_x3daudio1_7
+wine_fn_config_makefile dlls/xactengine3_1 enable_xactengine3_1
 wine_fn_config_makefile dlls/xactengine3_2 enable_xactengine3_2
 wine_fn_config_makefile dlls/xactengine3_3 enable_xactengine3_3
 wine_fn_config_makefile dlls/xactengine3_4 enable_xactengine3_4
diff --git a/configure.ac b/configure.ac
index 32a6d3c71f7d665d0d498389db7024b40ff51a1b..bd8b6b2d5ac59935730a0ee2fdf57b40d3a1921b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1958,6 +1958,7 @@ then
     enable_x3daudio1_5=${enable_x3daudio1_5:-no}
     enable_x3daudio1_6=${enable_x3daudio1_6:-no}
     enable_x3daudio1_7=${enable_x3daudio1_7:-no}
+    enable_xactengine3_1=${enable_xactengine3_1:-no}
     enable_xactengine3_2=${enable_xactengine3_2:-no}
     enable_xactengine3_3=${enable_xactengine3_3:-no}
     enable_xactengine3_4=${enable_xactengine3_4:-no}
@@ -3910,6 +3911,7 @@ WINE_CONFIG_MAKEFILE(dlls/x3daudio1_4)
 WINE_CONFIG_MAKEFILE(dlls/x3daudio1_5)
 WINE_CONFIG_MAKEFILE(dlls/x3daudio1_6)
 WINE_CONFIG_MAKEFILE(dlls/x3daudio1_7)
+WINE_CONFIG_MAKEFILE(dlls/xactengine3_1)
 WINE_CONFIG_MAKEFILE(dlls/xactengine3_2)
 WINE_CONFIG_MAKEFILE(dlls/xactengine3_3)
 WINE_CONFIG_MAKEFILE(dlls/xactengine3_4)
diff --git a/dlls/xactengine3_1/Makefile.in b/dlls/xactengine3_1/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..f95ea04624c688262d060e75c02b128f6f6b32a7
--- /dev/null
+++ b/dlls/xactengine3_1/Makefile.in
@@ -0,0 +1,11 @@
+MODULE    = xactengine3_1.dll
+IMPORTS   = ole32 uuid
+EXTRADEFS = -DXACT3_VER=0x0301
+PARENTSRC = ../xactengine3_7
+EXTRALIBS = $(FAUDIO_LIBS)
+EXTRAINCL = $(FAUDIO_CFLAGS)
+
+C_SRCS = \
+	xact_dll.c
+
+IDL_SRCS = xact_classes.idl
diff --git a/dlls/xactengine3_1/xactengine3_1.spec b/dlls/xactengine3_1/xactengine3_1.spec
new file mode 100644
index 0000000000000000000000000000000000000000..b16365d0c9fc216f15ba2cbb479440656177b77e
--- /dev/null
+++ b/dlls/xactengine3_1/xactengine3_1.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/xactengine3_7/xact_classes.idl b/dlls/xactengine3_7/xact_classes.idl
index aa8aede36579a6ac0828d972bd005f615b638ecc..aeac5d4cd37b3b9dfb06593b64e7d5a51fed83f1 100644
--- a/dlls/xactengine3_7/xact_classes.idl
+++ b/dlls/xactengine3_7/xact_classes.idl
@@ -20,7 +20,14 @@
 
 #pragma makedep register
 
-#if XACT3_VER == 0x0302
+#if XACT3_VER == 0x0301
+[
+    helpstring("XACT3.1 Class"),
+    threading(both),
+    uuid(962f5027-99be-4692-a468-85802cf8de61)
+]
+coclass XACTEngine31 { interface IXACT32Engine; }
+#elif XACT3_VER == 0x0302
 [
     helpstring("XACT3.2 Class"),
     threading(both),