diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,14 @@
+# 0.1.0.3
+
+- Fix oops bugs in 0.1.0.2
+
+  - It's lowercase `windows.h`.
+    I blame Microsoft docs for using capital case `Windows.h` in the docs.
+    https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocessid
+
+  - accidental `shiftL` vs `shiftR` mixup for 32-bit generator initialization.
+    Doesn't affect Linux.
+
 # 0.1.0.2
 
 - Drop `time` dependency in favour of handcoded initialization
diff --git a/cbits-win/init.c b/cbits-win/init.c
--- a/cbits-win/init.c
+++ b/cbits-win/init.c
@@ -1,6 +1,6 @@
 #include <stdint.h>
 
-#include <Windows.h>
+#include <windows.h>
 
 uint64_t splitmix_init() {
     /* Handy list at https://stackoverflow.com/a/3487338/1308058 */
diff --git a/splitmix.cabal b/splitmix.cabal
--- a/splitmix.cabal
+++ b/splitmix.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               splitmix
-version:            0.1.0.2
+version:            0.1.0.3
 synopsis:           Fast Splittable PRNG
 description:
   Pure Haskell implementation of SplitMix described in
diff --git a/src/System/Random/SplitMix32.hs b/src/System/Random/SplitMix32.hs
--- a/src/System/Random/SplitMix32.hs
+++ b/src/System/Random/SplitMix32.hs
@@ -371,4 +371,4 @@
 initialSeed' :: IO Word32
 initialSeed' = do
     w64 <- initialSeed
-    return (fromIntegral (shiftL w64 32) `xor` fromIntegral w64)
+    return (fromIntegral (shiftR w64 32) `xor` fromIntegral w64)
