diff --git a/CHANGELOG.md b/CHANGELOG.md
index <HASH>..<HASH> 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
 
 
 ## [Unreleased] - unreleased
+### Added
+- `Service.close` method for freeing resources.
 
 
 ## [2] - 2015-11-15
diff --git a/setup.py b/setup.py
index <HASH>..<HASH> 100644
--- a/setup.py
+++ b/setup.py
@@ -15,7 +15,7 @@ def long_desc():
 
 setup(
     name='syndicate',
-    version='2',
+    version='2.1',
     description='A wrapper for REST APIs',
     author='Justin Mayfield',
     author_email='tooker@gmail.com',
diff --git a/syndicate/client.py b/syndicate/client.py
index <HASH>..<HASH> 100644
--- a/syndicate/client.py
+++ b/syndicate/client.py
@@ -49,6 +49,7 @@ class Service(object):
                  async=False, **adapter_config):
         if not uri:
             raise TypeError("Required: uri")
+        self.closed = False
         self.async = async
         self.auth = auth
         self.filters = []
@@ -129,4 +130,9 @@ class Service(object):
         return self.do('patch', path, data=data, **kwargs)
 
     def close(self):
-        self.adapter.close()
+        if self.closed:
+            return
+        if self.adapter is not None:
+            self.adapter.close()
+            self.adapter = None
+        self.closed = True
Rev to <I> and add close() docs.