diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4e88281fba668f076e1e4babf3c9c5c57ebad469..28d9f09ba7be0499d54b5051f374763f034af913 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,11 @@
 This file logs the changes that are actually interesting to users (new features,
 changed functionality, fixed bugs).
 
+## Version 2.0.6 (in development)
+
+- Fixed incompatibility with attrs version 17.1+.
+
+
 ## Version 2.0.5 (released 2017-05-09)
 
 - Vacuum SQLite database at startup.
diff --git a/flamenco_worker/upstream.py b/flamenco_worker/upstream.py
index a9ac8ea7fe7a1767e9a26eed4396f7603b71dbf5..d48ab0b24cb91c4980dbde0c6f840d1ce394aa15 100644
--- a/flamenco_worker/upstream.py
+++ b/flamenco_worker/upstream.py
@@ -36,9 +36,8 @@ class FlamencoManager:
     async def patch(self, *args, loop, **kwargs) -> requests.Response:
         return await self.client_request('PATCH', *args, loop=loop, **kwargs)
 
-    @functools.lru_cache(1)
-    def user_agent(self):
-        return 'Flamenco-Worker/%s' % self.flamenco_worker_version
+    def __attrs_post_init__(self):
+        self.user_agent = 'Flamenco-Worker/%s' % self.flamenco_worker_version
 
     async def client_request(self, method, url, *,
                              params=None,
@@ -83,7 +82,7 @@ class FlamencoManager:
 
         if headers is None:
             headers = {}
-        headers['User-Agent'] = self.user_agent()
+        headers['User-Agent'] = self.user_agent
 
         http_req = partial(self.session.request,
                            method, abs_url,