diff --git a/profiles/audioOverBle/btvoice.c b/profiles/audioOverBle/btvoice.c
index d6f192b..f67166a 100644
--- a/profiles/audioOverBle/btvoice.c
+++ b/profiles/audioOverBle/btvoice.c
@@ -234,7 +234,7 @@
       close(audio_fd);
       audio_fd = -1;
       g_attrib_set_mtu(btvoicedev->attrib, old_mtu);
-      DBG("Finished audio stream; sent = %d dropped = %d\n", sent, dropped);
+      DBG("Finished audio stream; sent = %d dropped = %d", sent, dropped);
       sent = dropped = 0;
     } else {
       struct iovec iov[3];
@@ -324,13 +324,13 @@
         report->ccc_handle = desc->handle;
         attrib = report->btvoicedev->attrib;
         audio_write_ccc(desc->handle, report);
-        DBG("Audio Notifications Enabled\n");
+        DBG("Audio Notifications Enabled");
         break;
       case GATT_REPORT_REFERENCE:
         report = user_data;
         attrib = report->btvoicedev->attrib;
         gatt_read_char(attrib, desc->handle, report_reference_cb, report);
-        DBG("Audio Stream Report Reference Characterstic Read\n");
+        DBG("Audio Stream Report Reference Characteristic Read");
         break;
     }
   }
@@ -339,7 +339,7 @@
 static void discover_descriptor(GAttrib *attrib, uint16_t start, uint16_t end,
                                 gpointer user_data) {
   if (start > end) {
-    DBG("Start before End\n");
+    DBG("Start before End");
     return;
   }
 
diff --git a/profiles/battery/battery.c b/profiles/battery/battery.c
index 4ec35fc..4448a25 100644
--- a/profiles/battery/battery.c
+++ b/profiles/battery/battery.c
@@ -207,10 +207,6 @@
 		chr = l->data;
 		next = l->next ? l->next->data : NULL;
 
-		DBG("BATT 0x%04x UUID: %s properties: %02x",
-				chr->handle, chr->uuid, chr->properties);
-
-
 		start = chr->value_handle + 1;
 		end = (next ? next->handle - 1 : prim->range.end);
 
@@ -229,8 +225,6 @@
 	struct btd_device *device = btd_service_get_device(service);
 	GAttrib *attrib = btd_device_get_attrib(device);
 
-	DBG("BATT connected");
-
 	battdev->attrib = g_attrib_ref(attrib);
 	battdev->level.value = -1;
 
@@ -253,8 +247,6 @@
 {
 	struct batt_device *battdev = btd_service_get_user_data(service);
 
-	DBG("BATT disconnected");
-
 	if (battdev->attrib) {
 		g_attrib_unref(battdev->attrib);
 		battdev->attrib = NULL;
@@ -304,11 +296,10 @@
 		struct gatt_primary *prim = l->data;
 		struct batt_device *battdev;
 
-		DBG("BATT uuid=%s", prim->uuid);
 		if (strcmp(prim->uuid, BATT_UUID) != 0)
 			continue;
 
-		DBG("BATT matched BATT uuid %s", prim->uuid);
+		DBG("BATT matched BATT_UUID %s", prim->uuid);
 		battdev = batt_register_device(device, prim);
 		if (battdev == NULL)
 			continue;
diff --git a/profiles/oad/oad.c b/profiles/oad/oad.c
index ad09863..81790e1 100644
--- a/profiles/oad/oad.c
+++ b/profiles/oad/oad.c
@@ -737,9 +737,6 @@
 		chr = l->data;
 		next = l->next ? l->next->data : NULL;
 
-		DBG("OAD 0x%04x UUID: %s properties: %02x", chr->handle, chr->uuid, chr->properties);
-
-
 		start = chr->value_handle + 1;
 		end = (next ? next->handle - 1 : prim->range.end);
 
@@ -763,8 +760,6 @@
 	struct btd_device *device = btd_service_get_device(service);
 	GAttrib *attrib = btd_device_get_attrib(device);
 
-	DBG("OAD connected");
-
 	oaddev->attrib = g_attrib_ref(attrib);
 	oaddev->identity.notify_enabled = 0;
 	oaddev->block.notify_enabled = 0;
@@ -790,8 +785,6 @@
 {
 	struct oad_device *oaddev = btd_service_get_user_data(service);
 
-	DBG("OAD disconnected");
-
 	if (oaddev->identity.attio_id > 0) {
 		g_attrib_unregister(oaddev->attrib, oaddev->identity.attio_id);
 		oaddev->identity.attio_id = 0;
@@ -852,11 +845,10 @@
 		struct gatt_primary *prim = l->data;
 		struct oad_device *oaddev;
 
-		DBG("OAD uuid=%s", prim->uuid);
 		if (strcmp(prim->uuid, OAD_UUID) != 0)
 			continue;
 
-		DBG("OAD matched OAD uuid");
+		DBG("OAD matched OAD_UUID %s", prim->uuid);
 		oaddev = oad_register_device(device, prim);
 		if (oaddev == NULL)
 			continue;
