diff --git a/configure.ac b/configure.ac
index 191d01314e976552d4286c27bf534432e25bd01b..88b73575bd84f00d4c9e70c8127d3d38abcc17d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,12 @@ AX_CHECK_COMPILE_FLAG([-std=gnu99],
 AX_CHECK_COMPILE_FLAG([-Wno-error=unused-variable],
       [TESTSUITE_CFLAGS="${TESTSUITE_CFLAGS} -Wno-error=unused-variable"])
 
+dnl If -m32 is available to reate 32-bit code,
+dnl treat it like a special case to be checked.
+AX_CHECK_COMPILE_FLAG([-m32], [CFLAGS_M32=-m32], [CFLAGS_M32=""])
+AC_SUBST(CFLAGS_M32)
+AM_CONDITIONAL([EXPLICIT_M32], [test "x${CFLAGS_M32}" != "x"])
+
 dnl Lower the optimization level in tests to aid debugging.
 dnl AX_CHECK_COMPILE_FLAG([-O1],
 dnl    [TESTSUITE_CFLAGS="${TESTSUITE_CFLAGS} -O1"])
@@ -208,7 +214,7 @@ Check out http://llvm.org/docs/LibFuzzer.html])
       ])
 ])
 
-TESTSUITE_CFLAGS="${TESTSUICE_CFLAGS} ${SANITIZER_CFLAGS}"
+TESTSUITE_CFLAGS="${TESTSUITE_CFLAGS} ${SANITIZER_CFLAGS}"
 SKELETONS_CFLAGS="${SKELETONS_CFLAGS} ${SANITIZER_CFLAGS}"
 
 AC_SUBST(ADD_CFLAGS)
diff --git a/skeletons/Makefile.am b/skeletons/Makefile.am
index d7560aebb16809f74c6bb9dbb3b664fc086c66c7..65455dcb2d28b5612ace412f92e33ef01d4c0eb8 100644
--- a/skeletons/Makefile.am
+++ b/skeletons/Makefile.am
@@ -19,7 +19,12 @@ uninstall-local:
 	-@echo -n " "
 	-rm -f -r $(DESTDIR)$(pkgdatadir)
 
-check_LTLIBRARIES = libasn1cskeletons.la
+check_LTLIBRARIES = libasn1cskeletons.la libasn1cskeletons_32.la
+
+if EXPLICIT_M32
+libasn1cskeletons_32_la_CFLAGS = $(CFLAGS_M32)
+libasn1cskeletons_32_la_SOURCES = $(libasn1cskeletons_la_SOURCES)
+endif
 
 libasn1cskeletons_la_SOURCES =                  \
     ANY.c ANY.h                                 \