diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.1.7.0
+
+- Improve login response by making the home server field optional [#45](https://github.com/softwarefactory-project/matrix-client-haskell/pull/45)
+
 ## 0.1.6.1
 
 - Use Unpadded base64 encoding, as it was done in v0.1.5.0
diff --git a/matrix-client.cabal b/matrix-client.cabal
--- a/matrix-client.cabal
+++ b/matrix-client.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: matrix-client
-version: 0.1.6.1
+version: 0.1.7.0
 synopsis: A matrix client library
 description:
   Matrix client is a library to interface with https://matrix.org.
@@ -58,7 +58,7 @@
     bytestring >=0.11.3 && <0.13,
     containers >=0.6.5 && <0.8,
     exceptions >=0.10.4 && <0.11,
-    hashable >=1.4.0 && <1.5,
+    hashable >=1.4.0 && <1.6,
     http-client >=0.5.0 && <0.8,
     http-client-tls >=0.2.0 && <0.4,
     http-types >=0.10.0 && <0.13,
diff --git a/src/Network/Matrix/Internal.hs b/src/Network/Matrix/Internal.hs
--- a/src/Network/Matrix/Internal.hs
+++ b/src/Network/Matrix/Internal.hs
@@ -37,7 +37,7 @@
 data LoginResponse = LoginResponse
     { lrUserId :: Text
     , lrAccessToken :: Text
-    , lrHomeServer :: Text
+    , lrHomeServer :: Maybe Text
     , lrDeviceId :: Text
     }
 
@@ -45,7 +45,7 @@
     parseJSON = withObject "LoginResponse" $ \v -> do
         userId' <- v .: "user_id"
         accessToken' <- v .: "access_token"
-        homeServer' <- v .: "home_server"
+        homeServer' <- v .:? "home_server"
         deviceId' <- v .: "device_id"
         pure $ LoginResponse userId' accessToken' homeServer' deviceId'
 
