diff --git a/src/master/authenticator/authenticator.py b/src/master/authenticator/authenticator.py
index 904cd8ac954d9c4b2cc6e887bedca899b8089c22..01ab05c454f03a4cbf44bd20b40dda24dd2c2a3d 100755
--- a/src/master/authenticator/authenticator.py
+++ b/src/master/authenticator/authenticator.py
@@ -67,9 +67,14 @@ class AuthClient(basic.LineReceiver):
 			try:
 				queryExecute(client)
 			except (psycopg2.OperationalError, psycopg2.InterfaceError):
-				print "DB broken, recreating"
-				openDB()
-				queryExecute(client)
+				try:
+					print "DB broken, recreating"
+					openDB()
+					queryExecute(client)
+				except (psycopg2.OperationalError, psycopg2.InterfaceError):
+					print "DB still broken, dropping request"
+					self.transport.abortConnection()
+					return
 			log_info = cursor.fetchone()
 			db.rollback()
 			if log_info: