--- old/usr/src/lib/libc/port/locale/ldpart.c	Sat Jul  5 18:50:53 2014
+++ new/usr/src/lib/libc/port/locale/ldpart.c	Sat Jul  5 18:50:53 2014
@@ -38,6 +38,7 @@
 #include <unistd.h>
 #include <stdio.h>
 
+#include "libc.h"
 #include "ldpart.h"
 #include "setlocale.h"
 
@@ -75,7 +76,7 @@
 		goto bad_locale;
 	}
 	bufsize = namesize + st.st_size;
-	if ((lbuf = malloc(bufsize)) == NULL) {
+	if ((lbuf = libc_malloc(bufsize)) == NULL) {
 		errno = ENOMEM;
 		goto bad_locale;
 	}
--- old/usr/src/lib/libc/port/locale/lmonetary.c	Sat Jul  5 18:50:53 2014
+++ new/usr/src/lib/libc/port/locale/lmonetary.c	Sat Jul  5 18:50:53 2014
@@ -33,6 +33,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
+#include "libc.h"
 #include "ldpart.h"
 #include "lmonetary.h"
 #include "localeimpl.h"
@@ -111,9 +112,8 @@
 
 	/* special storage for currency string */
 	clen = strlen(lmon->currency_symbol) + 2;
-	ldata->l_data[2] = malloc(clen);
+	ldata->l_data[2] = libc_malloc(clen);
 	lmon->crncystr = ldata->l_data[2];
-	lmon->crncystr[0] = '\0';
 
 	lmon->mon_grouping = __fix_locale_grouping_str(lmon->mon_grouping);
 
--- old/usr/src/lib/libc/port/locale/localeimpl.c	Sat Jul  5 18:50:53 2014
+++ new/usr/src/lib/libc/port/locale/localeimpl.c	Sat Jul  5 18:50:53 2014
@@ -158,11 +158,11 @@
 {
 	struct locdata *ldata;
 
-	if ((ldata = calloc(1, sizeof (*ldata))) == NULL) {
+	if ((ldata = lmalloc(sizeof (*ldata))) == NULL) {
 		return (NULL);
 	}
-	if ((ldata->l_data[0] = calloc(1, memsz)) == NULL) {
-		free(ldata);
+	if ((ldata->l_data[0] = libc_malloc(memsz)) == NULL) {
+		lfree(ldata, sizeof (*ldata));
 		errno = ENOMEM;
 		return (NULL);
 	}
@@ -179,10 +179,10 @@
 __locdata_free(struct locdata *ldata)
 {
 	for (int i = 0; i < NLOCDATA; i++)
-		free(ldata->l_data[i]);
+		libc_free(ldata->l_data[i]);
 	if (ldata->l_map != NULL && ldata->l_map_len)
 		(void) munmap(ldata->l_map, ldata->l_map_len);
-	free(ldata);
+	lfree(ldata, sizeof (*ldata));
 }
 
 /*
@@ -250,7 +250,9 @@
 		lmutex_unlock(&cache_lock);
 		loc = (*loaders[category])(locname);
 		lmutex_lock(&cache_lock);
-		(void) strlcpy(loc->l_lname, locname, sizeof (loc->l_lname));
+		if (loc != NULL)
+			(void) strlcpy(loc->l_lname, locname,
+			    sizeof (loc->l_lname));
 	}
 
 	/*
@@ -260,7 +262,8 @@
 	 */
 	if (loc != NULL) {
 		cache_data[category] = loc;
-		if (loc->l_next == NULL) {
+		if (!loc->l_cached) {
+			loc->l_cached = 1;
 			loc->l_next = cat_data[category];
 			cat_data[category] = loc;
 		}
@@ -374,7 +377,7 @@
 	locale_t	loc;
 	int		i;
 
-	loc = calloc(1, sizeof (*loc));
+	loc = lmalloc(sizeof (*loc));
 	if (loc == NULL) {
 		return (NULL);
 	}
@@ -404,8 +407,8 @@
 	 * setlocale().  This shouldn't be strictly necessary, but a little
 	 * extra safety doesn't hurt here.
 	 */
-	if ((loc != &posix_locale) && (!loc->on_list))
-		free(loc);
+	if ((loc != NULL) && (loc != &posix_locale) && (!loc->on_list))
+		lfree(loc, sizeof (*loc));
 }
 
 locale_t
@@ -426,7 +429,7 @@
 	if (base == NULL || base == ___global_locale) {
 		loc = duplocale(___global_locale);
 	} else {
-		loc = base;
+		loc = duplocale(base);
 	}
 	if (loc == NULL) {
 		return (NULL);
@@ -455,6 +458,8 @@
 	loc->monetary = loc->locdata[LC_MONETARY]->l_data[0];
 	loc->numeric = loc->locdata[LC_NUMERIC]->l_data[0];
 	loc->time = loc->locdata[LC_TIME]->l_data[0];
+	freelocale(base);
+
 	return (mklocname(loc));
 }
 
--- old/usr/src/lib/libc/port/locale/localeimpl.h	Sat Jul  5 18:50:53 2014
+++ new/usr/src/lib/libc/port/locale/localeimpl.h	Sat Jul  5 18:50:53 2014
@@ -51,6 +51,7 @@
 	void		*l_map;				/* mapped file */
 	size_t		l_map_len;
 	struct locdata	*l_next;			/* link cached list */
+	int		l_cached;			/* nonzero if cached */
 };
 
 
--- old/usr/src/lib/libc/port/locale/rune.c	Sat Jul  5 18:50:53 2014
+++ new/usr/src/lib/libc/port/locale/rune.c	Sat Jul  5 18:50:53 2014
@@ -44,6 +44,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 
+#include "libc.h"
 #include "runetype.h"
 #include "runefile.h"
 
@@ -139,7 +140,7 @@
 	/*
 	 * Convert from disk format to host format.
 	 */
-	data = malloc(sizeof (_RuneLocale) +
+	data = libc_malloc(sizeof (_RuneLocale) +
 	    (frl->runetype_ext_nranges + frl->maplower_ext_nranges +
 	    frl->mapupper_ext_nranges) * sizeof (_RuneEntry) +
 	    runetype_ext_len * sizeof (*rr->__types) +
--- old/usr/src/man/man3c/Makefile	Sat Jul  5 18:50:54 2014
+++ new/usr/src/man/man3c/Makefile	Sat Jul  5 18:50:54 2014
@@ -796,6 +796,7 @@
 	 	getvfsspec.3c				\
 	 	getw.3c					\
 	 	getwc_l.3c				\
+	 	getwchar_l.3c				\
 	 	getzoneidbyname.3c			\
 	 	getzonenamebyid.3c			\
 	 	globfree.3c				\
@@ -1688,6 +1689,8 @@
 
 getwc_l.3c				:= LINKSRC = getwc.3c
 
+getwchar_l.3c				:= LINKSRC = getwchar.3c
+
 fgetws.3c				:= LINKSRC = getws.3c
 
 getzoneidbyname.3c			:= LINKSRC = getzoneid.3c
--- old/usr/src/man/man3c/getwchar.3c	Sat Jul  5 18:50:54 2014
+++ new/usr/src/man/man3c/getwchar.3c	Sat Jul  5 18:50:54 2014
@@ -1,4 +1,5 @@
 '\" te
+.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
 .\"  Copyright (c) 1992, X/Open Company Limited  All Rights Reserved  Portions Copyright (c) 2002, Sun Microsystems, Inc.  All Rights Reserved
 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
 .\" http://www.opengroup.org/bookstore/.
@@ -17,21 +18,25 @@
 
 \fBwint_t\fR \fBgetwchar\fR(void)
 .fi
+.LP
+.nf
+#include <wchar.h>
+#include <xlocale.h>
 
+\fBwint_t\fR \fBgetwchar_l\fR(locale_t loc)
+.fi
 .SH DESCRIPTION
-.sp
 .LP
-The \fBgetwchar()\fR function is equivalent to \fBgetwc(stdin)\fR.
+The \fBgetwchar()\fR function is equivalent to \fBgetwc\fR(\fBstdin\fR).
+.LP
+The\fBgetwchar_l()\fR function is equivalent to \fBgetwc\fR(\fBstdin\fR, \fIloc\fR).
 .SH RETURN VALUES
-.sp
 .LP
 Refer to \fBfgetwc\fR(3C).
 .SH ERRORS
-.sp
 .LP
 Refer to \fBfgetwc\fR(3C).
 .SH USAGE
-.sp
 .LP
 If the \fBwint_t\fR value returned by \fBgetwchar()\fR is stored into a
 variable of type \fBwchar_t\fR and then compared against the \fBwint_t\fR macro
@@ -38,12 +43,8 @@
 \fBWEOF\fR, the comparison may never succeed because \fBwchar_t\fR is defined
 as unsigned.
 .SH ATTRIBUTES
-.sp
 .LP
 See \fBattributes\fR(5) for descriptions of the following attributes:
-.sp
-
-.sp
 .TS
 box;
 c | c
@@ -50,12 +51,14 @@
 l | l .
 ATTRIBUTE TYPE	ATTRIBUTE VALUE
 _
-Interface Stability	Standard
+Interface Stability	See below.
 _
 MT-Level	MT-Safe
 .TE
 
+.LP
+The \fBgetwchar()\fR function is Standard.  The \fBgetwchar_l()\fR function
+is Uncommitted.
 .SH SEE ALSO
-.sp
 .LP
 \fBfgetwc\fR(3C), \fBgetwc\fR(3C), \fBattributes\fR(5), \fBstandards\fR(5)
--- old/usr/src/man/man3c/mbtowc.3c	Sat Jul  5 18:50:54 2014
+++ new/usr/src/man/man3c/mbtowc.3c	Sat Jul  5 18:50:54 2014
@@ -1,4 +1,5 @@
 '\" te
+.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
 .\" Copyright (c) 1992, X/Open Company Limited.  All Rights Reserved.  Portions Copyright (c) 2002, Sun Microsystems, Inc.  All Rights Reserved.
 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
 .\" http://www.opengroup.org/bookstore/.
--- old/usr/src/man/man3c/strfmon.3c	Sat Jul  5 18:50:54 2014
+++ new/usr/src/man/man3c/strfmon.3c	Sat Jul  5 18:50:54 2014
@@ -24,7 +24,7 @@
 .fi
 .LP
 .nf
-\fBssize_t\fR \fBstrfmon\fR(\fBchar *restrict\fR \fIs\fR, \fBsize_t\fR \fImaxsize\fR,
+\fBssize_t\fR \fBstrfmon_l\fR(\fBchar *restrict\fR \fIs\fR, \fBsize_t\fR \fImaxsize\fR,
     \fBlocale_t\fR \fIloc\fR, \fBconst char *restrict\fR \fIformat\fR, ...);
 .fi
 .SH DESCRIPTION
--- old/usr/src/man/man3lib/libc.3lib	Sat Jul  5 18:50:54 2014
+++ new/usr/src/man/man3lib/libc.3lib	Sat Jul  5 18:50:54 2014
@@ -1,10 +1,11 @@
 '\" te
+.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
 .\" Copyright (c) 2009, Sun Microsystems, Inc.  All rights reserved.
 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
 .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with
 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
 .\" Copyright 2011 by Delphix.  All rights reserved.
-.TH LIBC 3LIB "Sep 15, 2009"
+.TH LIBC 3LIB "Jul 1, 2014"
 .SH NAME
 libc \- C library
 .SH DESCRIPTION
@@ -35,7 +36,8 @@
 \fB__fwritable\fR	\fB__fwriting\fR
 \fB__huge_val\fR	\fB__iob\fR
 \fB__loc1\fR	\fB__major\fR
-\fB__makedev\fR	\fB__minor\fR
+\fB__makedev\fR	\fB__mb_cur_max_l\fR
+\fB__minor\fR
 \fB__nsw_extended_action\fR	\fB__nsw_freeconfig\fR
 \fB__nsw_getconfig\fR	\fB__posix_asctime_r\fR
 \fB__posix_ctime_r\fR	\fB__posix_getgrgid_r\fR
@@ -153,7 +155,8 @@
 \fBbcmp\fR	\fBbcopy\fR
 \fBbindtextdomain\fR	\fBbind_textdomain_codeset\fR
 \fBbrk\fR	\fBbsd_signal\fR
-\fBbsearch\fR	\fBbtowc\fR
+\fBbsearch\fR
+\fBbtowc\fR	\fBbtowc_l\fR
 \fBbzero\fR	\fBcalloc\fR
 \fBcatclose\fR	\fBcatgets\fR
 \fBcatopen\fR	\fBcfgetispeed\fR
@@ -201,6 +204,7 @@
 \fBdoor_ucred\fR	\fBdoor_unbind\fR
 \fBdouble_to_decimal\fR	\fBdrand48\fR
 \fBdup\fR	\fBdup2\fR
+\fBduplocale\fR
 \fBeconvert\fR	\fBecvt\fR
 \fBenable_extended_FILE_stdio\fR	
 \fBencrypt\fR	\fBendgrent\fR
@@ -232,7 +236,8 @@
 \fBfgetpos\fR	\fBfgetpwent\fR
 \fBfgetpwent_r\fR	\fBfgets\fR
 \fBfgetspent\fR	\fBfgetspent_r\fR
-\fBfgetwc\fR	\fBfgetws\fR
+\fBfgetwc\fR	\fBfgetwc_l\fR
+\fBfgetws\fR
 \fBfile_to_decimal\fR	\fBfileno\fR
 \fBfinite\fR	\fBflockfile\fR
 \fBfmtmsg\fR	\fBfnmatch\fR
@@ -246,7 +251,8 @@
 \fBfpsetsticky\fR	\fBfputc\fR
 \fBfputs\fR	\fBfputwc\fR
 \fBfputws\fR	\fBfread\fR
-\fBfree\fR	\fBfreopen\fR
+\fBfree\fR	\fBfreelocale\fR
+\fBfreopen\fR
 \fBfrexp\fR	\fBfscanf\fR
 \fBfseek\fR	\fBfseeko\fR
 \fBfsetattr\fR	
@@ -310,8 +316,10 @@
 \fBgetutxid\fR	\fBgetutxline\fR
 \fBgetvfsany\fR	\fBgetvfsent\fR
 \fBgetvfsfile\fR	\fBgetvfsspec\fR
-\fBgetw\fR	\fBgetwc\fR
-\fBgetwchar\fR	\fBgetwd\fR
+\fBgetw\fR
+\fBgetwc\fR	\fBgetwc_l\fR
+\fBgetwchar\fR	\fBgetwchar_l\fR
+\fBgetwd\fR
 \fBgetwidth\fR	\fBgetws\fR
 \fBgetzoneid\fR	\fBgetzoneidbyname\fR
 \fBgetzonenamebyid\fR	\fBglob\fR
@@ -326,25 +334,46 @@
 \fBinitstate\fR	\fBinnetgr\fR
 \fBinsque\fR	\fBioctl\fR
 \fBis_system_labeled\fR	
-\fBisaexec\fR	\fBisalnum\fR
-\fBisalpha\fR	\fBisascii\fR
-\fBisastream\fR	\fBisatty\fR
-\fBisblank\fR	\fBiscntrl\fR
-\fBisdigit\fR	\fBisenglish\fR
-\fBisgraph\fR	\fBisideogram\fR
-\fBislower\fR	\fBisnan\fR
+\fBisaexec\fR
+\fBisalnum\fR	\fBisalnum_l\fR
+\fBisalpha\fR	\fBisalpha_l\fR
+\fBisascii\fR	\fBisastream\fR
+\fBisatty\fR
+\fBisblank\fR	\fBisblank_l\fR
+\fBiscntrl\fR	\fBiscntrl_l\fR
+\fBisdigit\fR	\fBisdigit_l\fR
+\fBisenglish\fR
+\fBisgraph\fR	\fBisgraph_l\fR
+\fBisideogram\fR
+\fBislower\fR	\fBislower_l\fR
+\fBisnan\fR
 \fBisnand\fR	\fBisnanf\fR
 \fBisnumber\fR	\fBisphonogram\fR
-\fBisprint\fR	\fBispunct\fR
-\fBissetugid\fR	\fBisspace\fR
-\fBisspecial\fR	\fBisupper\fR
-\fBiswalnum\fR	\fBiswalpha\fR
-\fBiswblank\fR	\fBiswcntrl\fR
-\fBiswctype\fR	\fBiswdigit\fR
-\fBiswgraph\fR	\fBiswlower\fR
-\fBiswprint\fR	\fBiswpunct\fR
-\fBiswspace\fR	\fBiswupper\fR
-\fBiswxdigit\fR	\fBisxdigit\fR
+\fBisprint\fR	\fBisprint_l\fR
+\fBispunct\fR	\fBispunct_l\fR
+\fBissetugid\fR
+\fBisspace\fR	\fBisspace_l\fR
+\fBisspecial\fR
+\fBisupper\fR	\fBisupper_l\fR
+\fBiswalnum\fR	\fBiswalnum_l\fR
+\fBiswalpha\fR	\fBiswalpha_l\fR
+\fBiswblank\fR	\fBiswblank_l\fR
+\fBiswcntrl\fR	\fBiswcntrl_l\fR
+\fBiswctype\fR	\fBiswctype_l\fR
+\fBiswdigit\fR	\fBiswdigit_l\fR
+\fBiswideogram\fR	\fBiswideogram_l\fR
+\fBiswgraph\fR	\fBiswgraph_l\fR
+\fBiswhexnumber\fR	\fBiswhexnumber_l\fR
+\fBiswlower\fR	\fBiswlower_l\fR
+\fBiswnumber\fR	\fBiswnumber_l\fR
+\fBiswphonogram\fR	\fBiswphonogram_l\fR
+\fBiswprint\fR	\fBiswprint_l\fR
+\fBiswpunct\fR	\fBiswpunct_l\fR
+\fBiswspace\fR	\fBiswspace_l\fR
+\fBiswspecial\fR	\fBiswspecial_l\fR
+\fBiswupper\fR	\fBiswupper_l\fR
+\fBiswxdigit\fR	\fBiswxdigit_l\fR
+\fBisxdigit\fR	\fBisxdigit_l\fR
 \fBjrand48\fR	\fBkill\fR
 \fBkillpg\fR	\fBl64a\fR
 \fBlabs\fR	\fBladd\fR
@@ -365,10 +394,15 @@
 \fBlsub\fR	\fBlten\fR
 \fBlzero\fR	\fBmadvise\fR
 \fBmakecontext\fR	\fBmakeutx\fR
-\fBmalloc\fR	\fBmblen\fR
-\fBmbrlen\fR	\fBmbrtowc\fR
-\fBmbsinit\fR	\fBmbsrtowcs\fR
-\fBmbstowcs\fR	\fBmbtowc\fR
+\fBmalloc\fR
+\fBmblen\fR	\fBmblen_l\fR
+\fBmbrlen\fR	\fBmbrlen_l\fR
+\fBmbrtowc\fR	\fBmbrtowc_l\fR
+\fBmbsinit\fR	\fBmbsinit_l\fR
+\fBmbsnrtowcs\fR	\fBmbsnrtowcs_l\fR
+\fBmbsrtowcs\fR	\fBmbsrtowcs_l\fR
+\fBmbstowcs\fR	\fBmbstowcs_l\fR
+\fBmbtowc\fR	\fBmbtowc_l\fR
 \fBmemalign\fR	\fBmembar_consumer\fR
 \fBmembar_enter\fR	\fBmembar_exit\fR
 \fBmembar_producer\fR	\fBmemccpy\fR
@@ -400,10 +434,11 @@
 \fBmutex_destroy\fR	\fBmutex_init\fR
 \fBmutex_lock\fR	\fBmutex_trylock\fR
 \fBmutex_unlock\fR	\fBnanosleep\fR
-\fBnextafter\fR	
+\fBnextafter\fR		\fBnewlocale\fR
 \fBnfs_getfh\fR	\fBnftw\fR
 \fBngettext\fR	\fBnice\fR
-\fBnl_langinfo\fR	\fBnrand48\fR
+\fBnl_langinfo\fR	\fBnl_langinfo_l\fR
+\fBnrand48\fR
 \fBnss_default_finders\fR	\fBnss_delete\fR
 \fBnss_endent\fR	\fBnss_getent\fR
 \fBnss_search\fR	\fBnss_setent\fR
@@ -626,19 +661,23 @@
 \fBstack_setbounds\fR	\fBstack_violation\fR
 \fBstat\fR	\fBstatfs\fR
 \fBstatvfs\fR	\fBstime\fR
-\fBstr2sig\fR	\fBstrcasecmp\fR
+\fBstr2sig\fR
+\fBstrcasecmp\fR	\fBstrcasecmp_l\fR
 \fBstrcat\fR	\fBstrchr\fR
 \fBstrcmp\fR	\fBstrcoll\fR
 \fBstrcpy\fR	\fBstrcspn\fR
 \fBstrdup\fR	\fBstrerror\fR
-\fBstrerror_r\fR	\fBstrfmon\fR
-\fBstrftime\fR	\fBstring_to_decimal\fR
+\fBstrerror_r\fR
+\fBstrfmon\fR	\fBstrfmon_l\fR
+\fBstrftime\fR	\fBstrftime_l\fR
+\fBstring_to_decimal\fR
 \fBstrlcat\fR	\fBstrlcpy\fR
-\fBstrlen\fR	\fBstrncasecmp\fR
+\fBstrlen\fR
+\fBstrncasecmp\fR	\fBstrncasecmp_l\fR
 \fBstrncat\fR	\fBstrncmp\fR
 \fBstrncpy\fR	\fBstrpbrk\fR
-\fBstrptime\fR	\fBstrrchr\fR
-\fBstrsep\fR	
+\fBstrptime\fR	\fBstrptime_l\fR
+\fBstrrchr\fR	\fBstrsep\fR	
 \fBstrsignal\fR	\fBstrspn\fR
 \fBstrstr\fR	\fBstrtod\fR
 \fBstrtof\fR	\fBstrtoimax\fR
@@ -678,9 +717,12 @@
 \fBtimes\fR	\fBtimezone\fR
 \fBtmpfile\fR	\fBtmpnam\fR
 \fBtmpnam_r\fR	\fBtoascii\fR
-\fBtolower\fR	\fBtoupper\fR
-\fBtowctrans\fR	\fBtowlower\fR
-\fBtowupper\fR	\fBtruncate\fR
+\fBtolower\fR	\fBtolower_l\fR
+\fBtoupper\fR	\fBtoupper_l\fR
+\fBtowctrans\fR	\fBtowctrans_l\fR
+\fBtowlower\fR	\fBtowlower_l\fR
+\fBtowupper\fR	\fBtowupper_l\fR
+\fBtruncate\fR
 \fBtsearch\fR	\fBttyname\fR
 \fBttyname_r\fR	\fBttyslot\fR
 \fBtwalk\fR	\fBtzname\fR
@@ -706,6 +748,7 @@
 \fBunlinkat\fR	\fBunlockpt\fR
 \fBunordered\fR	\fBunsetenv\fR
 \fBupdwtmp\fR	\fBupdwtmpx\fR
+\fBuselocale\fR
 \fBusleep\fR	\fBustat\fR
 \fButime\fR	\fButimensat\fR
 \fButimes\fR	\fButmpname\fR
@@ -727,24 +770,32 @@
 \fBwaitid\fR	\fBwaitpid\fR
 \fBwalkcontext\fR	\fBwarn\fR
 \fBwarnx\fR	\fBwatoll\fR
-\fBwcrtomb\fR	\fBwcscat\fR
+\fBwcrtomb\fR	\fBwcrtomb_l\fR
+\fBwcscat\fR
 \fBwcschr\fR	\fBwcscmp\fR
-\fBwcscoll\fR	\fBwcscpy\fR
+\fBwcscoll\fR	\fBwcscoll_l\fR
+\fBwcscpy\fR
 \fBwcscspn\fR	\fBwcsftime\fR
 \fBwcslen\fR	\fBwcsncat\fR
 \fBwcsncmp\fR	\fBwcsncpy\fR
 \fBwcspbrk\fR	\fBwcsrchr\fR
-\fBwcsrtombs\fR	\fBwcsspn\fR
+\fBwcsrtombs\fR	\fBwcsrtombs_l\fR
+\fBwcsspn\fR
 \fBwcsstr\fR	\fBwcstod\fR
 \fBwcstof\fR	\fBwcstoimax\fR
 \fBwcstok\fR	\fBwcstol\fR
 \fBwcstold\fR	\fBwcstoll\fR
-\fBwcstombs\fR	\fBwcstoul\fR
+\fBwcstombs\fR	\fBwctombs_l\fR
+\fBwcstoul\fR
 \fBwcstoull\fR	\fBwcstoumax\fR
-\fBwcswcs\fR	\fBwcswidth\fR
-\fBwcsxfrm\fR	\fBwctob\fR
-\fBwctomb\fR	\fBwctrans\fR
-\fBwctype\fR	\fBwcwidth\fR
+\fBwcswcs\fR
+\fBwcswidth\fR	\fBwcswidth_l\fR
+\fBwcsxfrm\fR	\fBwcsxfrm_l\fR
+\fBwctob\fR	\fBwctob_l\fR
+\fBwctomb\fR	\fBwctomb_l\fR
+\fBwctrans\fR	\fBwctrans_l\fR
+\fBwctype\fR	\fBwctype_l\fR
+\fBwcwidth\fR	\fBwcwidth_l\fR
 \fBwmemchr\fR	\fBwmemcmp\fR
 \fBwmemcpy\fR	\fBwmemmove\fR
 \fBwmemset\fR	\fBwordexp\fR
--- old/usr/src/pkg/manifests/system-library.man3c.inc	Sat Jul  5 18:50:54 2014
+++ new/usr/src/pkg/manifests/system-library.man3c.inc	Sat Jul  5 18:50:54 2014
@@ -797,6 +797,7 @@
 link path=usr/share/man/man3c/getvfsspec.3c target=getvfsent.3c
 link path=usr/share/man/man3c/getw.3c target=fgetc.3c
 link path=usr/share/man/man3c/getwc_l.3c target=getwc.3c
+link path=usr/share/man/man3c/getwchar_l.3c target=getwchar.3c
 link path=usr/share/man/man3c/getzoneidbyname.3c target=getzoneid.3c
 link path=usr/share/man/man3c/getzonenamebyid.3c target=getzoneid.3c
 link path=usr/share/man/man3c/globfree.3c target=glob.3c
