diff --git a/pydbus/bus.py b/pydbus/bus.py
index <HASH>..<HASH> 100644
--- a/pydbus/bus.py
+++ b/pydbus/bus.py
@@ -53,15 +53,6 @@ class Bus(OwnMixin, WatchMixin):
 		return self
 
 	def __exit__(self, exc_type, exc_value, traceback):
-		if self.con:
-			self.close()
-
-	def __del__(self):
-		if self.con:
-			self.close()
-
-	def close(self):
-		self.con.close_sync(None)
 		self.con = None
 
 def SystemBus():
diff --git a/pydbus/tests/context.py b/pydbus/tests/context.py
index <HASH>..<HASH> 100644
--- a/pydbus/tests/context.py
+++ b/pydbus/tests/context.py
@@ -5,3 +5,9 @@ with SessionBus() as bus:
 	assert(notifications.Notify)
 
 assert(bus.con is None)
+
+with SessionBus() as bus:
+	notifications = bus.get('.Notifications')
+	assert(notifications.Notify)
+
+assert(bus.con is None)
Drop bus.close(), as it does an unexpected thing.

In __init__ we obtain a reference to a singleton object,
and do not create it. Therefore we shouldn't close it on exit.