diff --git a/api_test.go b/api_test.go
index 74ecf36..87430a8 100644
--- a/api_test.go
+++ b/api_test.go
@@ -146,6 +146,12 @@
 				Expect(res).Should(BeTrue())
 			}
 
+			for i := 0; i < 10; i++ {
+				row := generateTestCompanyDeveloper(i)
+				res := deleteCompanyDeveloper(row, txn)
+				Expect(res).Should(BeTrue())
+			}
+
 			txn.Commit()
 		})
 
@@ -174,7 +180,7 @@
 			res = deleteObject("COMPANY", row, txn)
 			Expect(res).Should(BeFalse())
 
-			res = deleteObject("COMPANY_DEVELOPER", row, txn)
+			res = deleteCompanyDeveloper(row, txn)
 			Expect(res).Should(BeFalse())
 
 			txn.Rollback()
diff --git a/listener.go b/listener.go
index 0837149..edc9992 100644
--- a/listener.go
+++ b/listener.go
@@ -528,12 +528,12 @@
 				ok = insertCompanyDevelopers(rows, txn)
 
 			case common.Update:
-				ok = deleteObject("COMPANY_DEVELOPER", payload.OldRow, txn)
+				ok = deleteCompanyDeveloper(payload.OldRow, txn)
 				rows = append(rows, payload.NewRow)
 				ok = insertCompanyDevelopers(rows, txn)
 
 			case common.Delete:
-				ok = deleteObject("COMPANY_DEVELOPER", payload.OldRow, txn)
+				ok = deleteCompanyDeveloper(payload.OldRow, txn)
 			}
 		case "kms.app_credential":
 			switch payload.Operation {
@@ -648,3 +648,30 @@
 	log.Errorf("DELETE APP_CREDENTIAL_APIPRODUCT_MAPPER (%s, %s, %s, %s) failed.", ApiProduct, AppId, EntityIdentifier, apid_scope, err)
 	return false
 }
+
+func deleteCompanyDeveloper(ele common.Row, txn *sql.Tx) bool {
+	prep, err := txn.Prepare(`
+	DELETE FROM COMPANY_DEVELOPER
+	WHERE tenant_id=$1 AND company_id=$2 AND developer_id=$3`)
+	if err != nil {
+		log.Errorf("DELETE COMPANY_DEVELOPER Failed: %v", err)
+		return false
+	}
+	defer prep.Close()
+
+	var tenantId, companyId, developerId string
+	ele.Get("tenant_id", &tenantId)
+	ele.Get("company_id", &companyId)
+	ele.Get("developer_id", &developerId)
+
+	res, err := txn.Stmt(prep).Exec(tenantId, companyId, developerId)
+	if err == nil {
+		affect, err := res.RowsAffected()
+		if err == nil && affect != 0 {
+			log.Debugf("DELETE COMPANY_DEVELOPER (%s, %s, %s) success.", tenantId, companyId, developerId)
+			return true
+		}
+	}
+	log.Errorf("DELETE COMPANY_DEVELOPER (%s, %s, %s) failed: %v", tenantId, companyId, developerId, err)
+	return false
+}
