diff --git a/CHANGES b/CHANGES
index 00eb6331ce28106739365ca56d92192f2c8db76b..93489439d9e5c44fe5dd8dcd6dccfcd531568713 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,7 @@ OpenLDAP 2.3.21 Engineering
 	Fixed libldap invalid free bug (ITS#4436)
 	Fixed libldap mutex leak (ITS#4441)
 	Fixed libldap_r thr_yield(2) return handling (ITS#4469)
+	Fixed liblunicode build (ITS#4435)
 	Fixed slapd syncprov/glue interaction issue (ITS#4323, ITS#4417)
 	Fixed slapd operational attrs in presence of global overlays (ITS#4431)
 	Fixed slapd "threads" config value checking (ITS#4433)
diff --git a/libraries/liblunicode/Makefile.in b/libraries/liblunicode/Makefile.in
index c7de1a782763376010e643311af4313fdff464ee..efebb1817204bb30acef085e4e0f5b2ea46c5128 100644
--- a/libraries/liblunicode/Makefile.in
+++ b/libraries/liblunicode/Makefile.in
@@ -15,7 +15,7 @@
 
 LIBRARY = liblunicode.a
 
-XXDIR = $(srcdir)/*/
+XXDIR = $(srcdir)/ucdata/
 XXHEADERS = ucdata.h ure.h uctable.h
 
 XXSRCS	= ucdata.c ucgendat.c ure.c urestubs.c
@@ -41,7 +41,8 @@ ucgendat: $(XLIBS) ucgendat.o
 .links :
 	@for i in $(XXSRCS) $(XXHEADERS); do \
 		$(RM) $$i ; \
-		$(LN_S) $(XXDIR)$$i . ; \
+		ii=`find . -name $$i` ; \
+		$(LN_S) $$ii . ; \
 	done
 	touch .links