diff --git a/man/curs_inwstr.3x b/man/curs_inwstr.3x
new file mode 100644
index 0000000..990789c
--- /dev/null
+++ b/man/curs_inwstr.3x
@@ -0,0 +1,93 @@
+.\"***************************************************************************
+.\" Copyright (c) 2002-2005,2006 Free Software Foundation, Inc.              *
+.\"                                                                          *
+.\" Permission is hereby granted, free of charge, to any person obtaining a  *
+.\" copy of this software and associated documentation files (the            *
+.\" "Software"), to deal in the Software without restriction, including      *
+.\" without limitation the rights to use, copy, modify, merge, publish,      *
+.\" distribute, distribute with modifications, sublicense, and/or sell       *
+.\" copies of the Software, and to permit persons to whom the Software is    *
+.\" furnished to do so, subject to the following conditions:                 *
+.\"                                                                          *
+.\" The above copyright notice and this permission notice shall be included  *
+.\" in all copies or substantial portions of the Software.                   *
+.\"                                                                          *
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+.\"                                                                          *
+.\" Except as contained in this notice, the name(s) of the above copyright   *
+.\" holders shall not be used in advertising or otherwise to promote the     *
+.\" sale, use or other dealings in this Software without prior written       *
+.\" authorization.                                                           *
+.\"***************************************************************************
+.\"
+.\" $Id: curs_inwstr.3x,v 1.5 2006/02/25 21:20:20 tom Exp $
+.TH curs_inwstr 3X ""
+.SH NAME
+\fBinwstr\fR,
+\fBinnwstr\fR,
+\fBwinwstr\fR,
+\fBwinnwstr\fR,
+\fBmvinwstr\fR,
+\fBmvinnwstr\fR,
+\fBmvwinwstr\fR,
+\fBmvwinnwstr\fR \- get a string of \fBwchar_t\fR characters from a curses window
+.SH SYNOPSIS
+.nf
+\fB#include <curses.h> \fR
+.sp
+\fBint inwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint innwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint winwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint winnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvinwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint mvinnwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.br
+\fBint mvwinwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
+.br
+\fBint mvwinnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
+.fi
+.SH DESCRIPTION
+These routines return a string of \fBwchar_t\fR characters in \fIwstr\fR,
+extracted starting at the current cursor position in the named window.
+Attributes are stripped from the characters.
+The four functions with \fIn\fR as the last argument return a leading substring at most
+\fIn\fR bytes long (exclusive of the trailing NUL).
+Transfer stops at the end of the current line, or when \fIn\fR bytes have
+been stored at the location referenced by \fIwstr\fR.
+.PP
+If the size \fIn\fR is not large enough to store a complete character,
+an error is generated.
+.SH NOTES
+Note that all routines except
+\fBwinnwstr\fR
+may be macros.
+.SH RETURN VALUES
+All routines return
+\fBERR\fR
+upon failure. Upon
+successful completion, the *\fBinwstr\fR
+routines return
+\fBOK\fR, and the *\fBinnwstr\fR
+routines return the
+number of characters read into the string.
+.SH SEE ALSO
+\fBcurses\fR(3X),
+\fBcurs_instr\fR(3X),
+\fBcurs_in_wchstr\fR(3X)
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
