diff --git a/configure b/configure
index 66335f0..30aff74 100755
--- a/configure
+++ b/configure
@@ -14713,6 +14713,7 @@
 
 
 
+
 for ac_func in \
 	_lwp_create \
 	_lwp_self \
@@ -14737,6 +14738,7 @@
 	futimes \
 	futimesat \
 	getaddrinfo \
+	getnameinfo \
 	getnetbyname \
 	getopt_long \
 	getpagesize \
diff --git a/configure.ac b/configure.ac
index 8fc5519..652de1a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1156,6 +1156,7 @@
 	futimes \
 	futimesat \
 	getaddrinfo \
+	getnameinfo \
 	getnetbyname \
 	getopt_long \
 	getpagesize \
diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c
index a86249d..a07c5b4 100644
--- a/dlls/winsock/socket.c
+++ b/dlls/winsock/socket.c
@@ -3235,6 +3235,33 @@
     return EAI_FAIL;
 }
 
+int WINAPI WS_getnameinfo(const struct WS_sockaddr *sa, socklen_t salen, char *host,
+                          DWORD hostlen, char *serv, DWORD servlen, int flags)
+{
+#if HAVE_GETNAMEINFO
+    int ret;
+    const struct sockaddr* sa_u;
+    unsigned int size;
+
+    TRACE("%s %d %p %ld %p %ld %d\n", debugstr_sockaddr(sa), salen, host, hostlen,
+          serv, servlen, flags);
+
+    sa_u = ws_sockaddr_ws2u(sa, salen, &size);
+    if (!sa_u)
+    {
+        WSASetLastError(WSAEFAULT);
+        return WSA_NOT_ENOUGH_MEMORY;
+    }
+    ret = getnameinfo(sa_u, size, host, hostlen, serv, servlen, flags);
+
+    ws_sockaddr_free(sa_u, sa);
+    return convert_eai_u2w(ret);
+#else
+    FIXME("getnameinfo() failed, not found during buildtime.\n");
+    return EAI_FAIL;
+#endif
+}
+
 /***********************************************************************
  *		getservbyport		(WS2_32.56)
  */
diff --git a/dlls/winsock/ws2_32.spec b/dlls/winsock/ws2_32.spec
index b36b854..bbcafc0 100644
--- a/dlls/winsock/ws2_32.spec
+++ b/dlls/winsock/ws2_32.spec
@@ -116,4 +116,4 @@
 @ stdcall WSCWriteProviderOrder(ptr long)
 @ stdcall freeaddrinfo(ptr) WS_freeaddrinfo
 @ stdcall getaddrinfo(str str ptr ptr) WS_getaddrinfo
-@ stub    getnameinfo
+@ stdcall getnameinfo(ptr long ptr long ptr long long) WS_getnameinfo
diff --git a/include/config.h.in b/include/config.h.in
index c057314..8d25021 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -161,6 +161,9 @@
 /* Define to 1 if you have the `gethostbyname' function. */
 #undef HAVE_GETHOSTBYNAME
 
+/* Define to 1 if you have the `getnameinfo' function. */
+#undef HAVE_GETNAMEINFO
+
 /* Define to 1 if you have the `getnetbyname' function. */
 #undef HAVE_GETNETBYNAME
 
diff --git a/include/ws2tcpip.h b/include/ws2tcpip.h
index 90a224b..16efab6 100644
--- a/include/ws2tcpip.h
+++ b/include/ws2tcpip.h
@@ -215,7 +215,7 @@
 #define     GetAddrInfoA WS(getaddrinfo)
 int WINAPI  GetAddrInfoW(PCWSTR,PCWSTR,const ADDRINFOW*,PADDRINFOW*);
 #define     GetAddrInfo WINELIB_NAME_AW(GetAddrInfo)
-int WINAPI  WS(getnameinfo)(const struct sockaddr*,socklen_t,char*,DWORD,char*,DWORD,int);
+int WINAPI  WS(getnameinfo)(const struct WS(sockaddr)*,socklen_t,char*,DWORD,char*,DWORD,int);
 #define     GetNameInfoA WS(getnameinfo)
 INT WINAPI  GetNameInfoW(const SOCKADDR*,socklen_t,PWCHAR,DWORD,PWCHAR,DWORD,INT);
 #define     GetNameInfo WINELIB_NAME_AW(GetNameInfo)
