diff --git a/control_dbus.c b/control_dbus.c
index 322c743..4fb9e33 100644
--- a/control_dbus.c
+++ b/control_dbus.c
@@ -43,7 +43,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int control_dbus_ping(sd_bus_message *m, void *userdata,
@@ -190,7 +192,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int control_dbus_get_u8(sd_bus *bus, const char *path,
diff --git a/control_legacy.c b/control_legacy.c
index 3e9a6df..2a3461d 100644
--- a/control_legacy.c
+++ b/control_legacy.c
@@ -278,6 +278,7 @@
 	}
 
 	rc = sd_bus_send(NULL, n, NULL); /* Send response */
+	sd_bus_message_unref(n);
 	if (rc < 0)
 		MSG_ERR("sd_bus_send failed: %d\n", rc);
 
diff --git a/transport_dbus.c b/transport_dbus.c
index 42fb018..b6eb0e1 100644
--- a/transport_dbus.c
+++ b/transport_dbus.c
@@ -93,7 +93,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_get_info(sd_bus_message *m, void *userdata,
@@ -146,7 +148,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_get_flash_info(sd_bus_message *m, void *userdata,
@@ -181,7 +185,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_create_window(struct mbox_context *context,
@@ -225,7 +231,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_create_read_window(sd_bus_message *m, void *userdata,
@@ -274,7 +282,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 
 }
 
@@ -308,7 +318,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_write_flush(sd_bus_message *m, void *userdata,
@@ -334,7 +346,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_ack(sd_bus_message *m, void *userdata,
@@ -367,7 +381,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_erase(sd_bus_message *m, void *userdata,
@@ -400,7 +416,9 @@
 		return rc;
 	}
 
-	return sd_bus_send(NULL, n, NULL);
+	rc = sd_bus_send(NULL, n, NULL);
+	sd_bus_message_unref(n);
+	return rc;
 }
 
 static int transport_dbus_get_property(sd_bus *bus,
