diff --git a/libidn133-32/.32bit b/libidn133-32/.32bit
new file mode 100644
index 00000000..e69de29b
diff --git a/libidn133-32/.footprint b/libidn133-32/.footprint
new file mode 100644
index 00000000..6b15ccf0
--- /dev/null
+++ b/libidn133-32/.footprint
@@ -0,0 +1,4 @@
+drwxr-xr-x root/root usr/
+drwxr-xr-x root/root usr/lib32/
+lrwxrwxrwx root/root usr/lib32/libidn.so.11 -> libidn.so.11.6.16
+-rwxr-xr-x root/root usr/lib32/libidn.so.11.6.16
diff --git a/libidn133-32/.signature b/libidn133-32/.signature
new file mode 100644
index 00000000..7b8b2751
--- /dev/null
+++ b/libidn133-32/.signature
@@ -0,0 +1,7 @@
+untrusted comment: verify with /etc/ports/compat-32.pub
+RWSwxGo/zH7eXZtludfUg4ZFOz7+dAjHw/2GrnEBRi725G9CcCnDzsrLYGewZ0oSlW5oCNYQTQmIfAt8NUZeFWo1GtrMoxyXVQI=
+SHA256 (Pkgfile) = 1e99fd55ea6a4627d2d437702b59e082eb7b8574a4ac840b2ee0ece9ec78e9b7
+SHA256 (.footprint) = d95fa7de464be90b8b10f5f72e7a7f94146b0f02c230c4e39861fc977b732865
+SHA256 (libidn-1.33.tar.gz) = 44a7aab635bb721ceef6beecc4d49dfd19478325e1b47f3196f7d2acc4930e19
+SHA256 (libidn11-subdirs.patch) = 4531cc290bcdbae8a87c135634f2928576521bfa4d259b1eea4c2c8e36e65692
+SHA256 (makefile.patch) = a6cf1164263ec020af9dec7703b06c56874dbcd9324b1670c0425204dc5acc20
diff --git a/libidn133-32/Pkgfile b/libidn133-32/Pkgfile
new file mode 100644
index 00000000..7f68bc55
--- /dev/null
+++ b/libidn133-32/Pkgfile
@@ -0,0 +1,22 @@
+# Description: Provides support for IETF Internationalized Domain Names (IDN).
+# URL: https://www.gnu.org/software/libidn/
+# Maintainer: CRUX compat-32 Team, compat-32-ports at crux dot nu
+# Depends on: automake-114
+
+name=libidn133-32
+version=1.33
+release=1
+source=(https://ftp.gnu.org/gnu/libidn/libidn-$version.tar.gz
+ libidn11-subdirs.patch makefile.patch)
+
+build() {
+ cd libidn-$version
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --disable-nls \
+ --disable-static
+ make
+ make DESTDIR=$PKG install
+ rm -r $PKG/usr/{bin,include,lib32/{libidn.so,libidn.la,pkgconfig},share}
+}
diff --git a/libidn133-32/libidn11-subdirs.patch b/libidn133-32/libidn11-subdirs.patch
new file mode 100644
index 00000000..1f912d7a
--- /dev/null
+++ b/libidn133-32/libidn11-subdirs.patch
@@ -0,0 +1,13 @@
+diff -rupN libidn.orig/Makefile.am libidn/Makefile.am
+--- libidn.orig/Makefile.am 2018-10-16 20:36:07.230954718 +0200
++++ libidn/Makefile.am 2018-10-16 20:38:19.038641175 +0200
+@@ -16,8 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see .
+
+-SUBDIRS = gl lib/gl lib po src doc gltests lib/gltests tests examples \
+- java csharp
++SUBDIRS = gl lib/gl lib
+
+ EXTRA_DIST = cfg.mk maint.mk .clcopying
+ EXTRA_DIST += COPYING.LESSERv2 COPYING.LESSERv3 COPYINGv2 COPYINGv3
diff --git a/libidn133-32/makefile.patch b/libidn133-32/makefile.patch
new file mode 100644
index 00000000..56af0c85
--- /dev/null
+++ b/libidn133-32/makefile.patch
@@ -0,0 +1,42 @@
+diff -Naur libidn-1.33.orig/Makefile.am libidn-1.33/Makefile.am
+--- libidn-1.33.orig/Makefile.am 2021-09-06 15:02:37.335225836 +0200
++++ libidn-1.33/Makefile.am 2021-09-06 15:03:12.460226448 +0200
+@@ -16,8 +16,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see .
+
+-SUBDIRS = gl lib/gl lib po src doc gltests lib/gltests tests examples \
+- java csharp
++SUBDIRS = gl lib/gl lib
+
+ EXTRA_DIST = cfg.mk maint.mk .clcopying
+ EXTRA_DIST += COPYING.LESSERv2 COPYING.LESSERv3 COPYINGv2 COPYINGv3
+diff -Naur libidn-1.33.orig/cfg.mk libidn-1.33/cfg.mk
+--- libidn-1.33.orig/cfg.mk 2021-09-06 15:02:37.323225836 +0200
++++ libidn-1.33/cfg.mk 2021-09-06 15:06:00.011229365 +0200
+@@ -39,25 +39,6 @@
+ exclude_file_name_regexp--sc_useless_cpp_parens = ^lib/nfkc.c$$
+ exclude_file_name_regexp--sc_prohibit_strncpy = ^src/idn.c$$
+
+-doc/Makefile.gdoc:
+- printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > doc/Makefile.gdoc
+-
+-autoreconf: doc/Makefile.gdoc
+- for f in po/*.po.in; do \
+- cp $$f `echo $$f | sed 's/.in//'`; \
+- done
+- touch ChangeLog
+- mv build-aux/config.rpath build-aux/config.rpath-
+- test -f ./configure || autoreconf --install
+- mv build-aux/config.rpath- build-aux/config.rpath
+-
+-update-po: refresh-po
+- for f in `ls po/*.po | grep -v quot.po`; do \
+- cp $$f $$f.in; \
+- done
+- git add po/*.po.in
+- git commit -m "Sync with TP." po/LINGUAS po/*.po.in
+-
+ bootstrap: autoreconf
+ ./configure $(CFGFLAGS)
+