diff --git a/Makefile.am b/Makefile.am
index f0fa2d8..2127601 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -58,6 +58,7 @@ SUBDIRS = \
$(GLX_DIR) \
$(PRESENT_DIR) \
$(DRI3_DIR) \
+ IA \
exa \
$(GLAMOR_DIR) \
config \
diff --git a/configure.ac b/configure.ac
index c7379de..e09f020 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1421,6 +1421,10 @@ AC_DEFINE(XINPUT, 1, [Support X Input extension])
XI_LIB='$(top_builddir)/Xi/libXi.la'
XI_INC='-I$(top_srcdir)/Xi'
+# SolarisIA extension
+IA_LIB='$(top_builddir)/IA/libIA.la'
+XEXT_LIB="${XEXT_LIB} ${IA_LIB}"
+
AM_CONDITIONAL(XF86UTILS, test "x$XF86UTILS" = xyes)
AM_CONDITIONAL(VGAHW, test "x$VGAHW" = xyes)
AM_CONDITIONAL(VBE, test "x$VBE" = xyes)
@@ -2636,3 +2640,6 @@ xserver.ent
])
AC_OUTPUT
+
+# Add Sun IA extension
+AC_OUTPUT([IA/Makefile])
diff --git a/include/extinit.h b/include/extinit.h
index fa5f293..62a0ab2 100644
@@ -121,6 +121,14 @@ extern _X_EXPORT Bool noMITShmExtension;
extern void ShmExtensionInit(void);
#endif
+#define SolarisIAExtension
+
+#ifdef SolarisIAExtension
+#include <X11/extensions/interactive.h>
+extern _X_EXPORT Bool noIAExtension;
+extern void IAExtensionInit(void);
+#endif
+
extern void SyncExtensionInit(void);
extern void XCMiscExtensionInit(void);
diff --git a/mi/miinitext.c b/mi/miinitext.c
index 5872bf5..a9a3826 100644
--- a/mi/miinitext.c
+++ b/mi/miinitext.c
@@ -150,6 +150,9 @@ static ExtensionToggle ExtensionToggleList[] = {
#ifdef XCSECURITY
{"SECURITY", &noSecurityExtension},
#endif
+#ifdef SolarisIAExtension
+ { IANAME /* "SolarisIA" */, &noIAExtension },
+#endif
#ifdef RES
{"X-Resource", &noResExtension},
#endif
@@ -296,6 +299,9 @@ static const ExtensionModule staticExtensions[] = {
#ifdef RES
{ResExtensionInit, XRES_NAME, &noResExtension},
#endif
+#ifdef SolarisIAExtension
+ {IAExtensionInit, IANAME, &noIAExtension},
+#endif
#ifdef XV
{XvExtensionInit, XvName, &noXvExtension},
{XvMCExtensionInit, XvMCName, &noXvExtension},
diff --git a/os/utils.c b/os/utils.c
index 1a070de..efaeef7 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -184,6 +184,9 @@ Bool noXvExtension = FALSE;
#ifdef DRI2
Bool noDRI2Extension = FALSE;
#endif
+#ifdef SolarisIAExtension
+Bool noIAExtension = FALSE;
+#endif
Bool noGEExtension = FALSE;