diff --git a/configure.ac b/configure.ac
index 67a05bb..c520acf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,6 +151,8 @@ if test "$build_cython" = "true"; then
             if [test "x$CYTHON" != "xfalse"]; then
               AM_PATH_PYTHON([3.0], [CYTHON_PYTHON])
             fi
+            PYTHON_SO=`$PYTHON -c "import sysconfig, sys; get = sysconfig.get_config_var; sys.stdout.write(get('EXT_SUFFIX') or get('SO') or '.so');"`
+            AC_SUBST(PYTHON_SO)
 else
             CYTHON=false
 fi
diff --git a/cython/Makefile.am b/cython/Makefile.am
index bbc51c9..f853255 100644
--- a/cython/Makefile.am
+++ b/cython/Makefile.am
@@ -39,7 +39,7 @@ plist_la_CFLAGS = \
 	-Wno-implicit-function-declaration \
 	-fvisibility=default
 
-plist_la_LDFLAGS = -module -avoid-version $(PYTHON_LIBS) $(AM_LDFLAGS) -shared -export-dynamic
+plist_la_LDFLAGS = -module -avoid-version $(PYTHON_LIBS) $(AM_LDFLAGS) -shared -export-dynamic -shrext $(PYTHON_SO)
 plist_la_LIBADD = $(top_builddir)/src/libplist-2.0.la
 
 if WIN32
