diff --git a/jeepyb/cmd/update_blueprint.py b/jeepyb/cmd/update_blueprint.py
index 58cc390..2ce52f3 100644
--- a/jeepyb/cmd/update_blueprint.py
+++ b/jeepyb/cmd/update_blueprint.py
@@ -61,6 +61,7 @@
 
 GERRIT_CONFIG = get_broken_config(GERRIT_CONFIG)
 SECURE_CONFIG = get_broken_config(GERRIT_SECURE_CONFIG)
+DB_HOST = GERRIT_CONFIG.get("database", "hostname")
 DB_USER = GERRIT_CONFIG.get("database", "username")
 DB_PASS = SECURE_CONFIG.get("database", "password")
 DB_DB = GERRIT_CONFIG.get("database", "database")
@@ -144,7 +145,8 @@
         'Gerrit User Sync', uris.LPNET_SERVICE_ROOT, GERRIT_CACHE_DIR,
         credentials_file=GERRIT_CREDENTIALS, version='devel')
 
-    conn = MySQLdb.connect(user=DB_USER, passwd=DB_PASS, db=DB_DB)
+    conn = MySQLdb.connect(
+        host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_DB)
 
     find_specs(lpconn, conn, args)
 
diff --git a/jeepyb/cmd/update_bug.py b/jeepyb/cmd/update_bug.py
index 5a351e4..8644106 100644
--- a/jeepyb/cmd/update_bug.py
+++ b/jeepyb/cmd/update_bug.py
@@ -46,6 +46,19 @@
         return "Fix"
 
 
+def add_change_abandoned_message(bugtask, change_url, project,
+                                 branch, abandoner, reason):
+    subject = ('Change abandoned on %s (%s)'
+               % (u.short_project_name(project), branch))
+    body = ('Change abandoned by %s on branch: %s\nReview: %s'
+            % (abandoner, branch, change_url))
+
+    if reason:
+        body += ('\nReason: %s' % (reason))
+
+    bugtask.bug.newMessage(subject=subject, content=body)
+
+
 def add_change_proposed_message(bugtask, change_url, project, branch,
                                 related=False):
     fix = fix_or_related_fix(related)
@@ -194,6 +207,11 @@
 
     bugtask = task.lp_task
 
+    if args.hook == "change-abandoned":
+        add_change_abandoned_message(bugtask, args.change_url,
+                                     args.project, args.branch,
+                                     args.abandoner, args.reason)
+
     if args.hook == "change-merged":
         if args.branch == 'master':
             if (p.is_direct_release(args.project) and
@@ -317,6 +335,9 @@
     parser.add_argument('--branch', default=None)
     parser.add_argument('--commit', default=None)
     parser.add_argument('--topic', default=None)
+    # change-abandoned
+    parser.add_argument('--abandoner', default=None)
+    parser.add_argument('--reason', default=None)
     # change-merged
     parser.add_argument('--submitter', default=None)
     # patchset-created
