Index: src/random.cpp
===================================================================
--- src/random.cpp	(revision 192061)
+++ src/random.cpp	(working copy)
@@ -19,6 +19,34 @@
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
+#if defined(_WIN32)
+
+random_device::random_device(const string& )
+{    
+}
+
+random_device::~random_device()
+{
+}
+
+unsigned
+random_device::operator()()
+{
+    unsigned r;
+    errno_t err = rand_s(&r);
+    if (err)
+        __throw_system_error(err, "random_device rand_s failed.");        
+    return r;
+}
+
+double
+random_device::entropy() const _NOEXCEPT
+{
+    return 0;
+}
+
+#else
+
 random_device::random_device(const string& __token)
     : __f_(open(__token.c_str(), O_RDONLY))
 {
@@ -45,4 +73,6 @@
     return 0;
 }
 
+#endif // defined(_WIN32)
+
 _LIBCPP_END_NAMESPACE_STD
Index: include/__config
===================================================================
--- include/__config	(revision 192061)
+++ include/__config	(working copy)
@@ -87,6 +87,8 @@
 #  ifndef __MINGW32__
 #    define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
 #  endif
+#  // Must be defined before stdlib.h is included to enable rand_s().
+#  define _CRT_RAND_S
 #endif  // _WIN32
 
 #ifdef __linux__
