diff --git a/data.go b/data.go
index 7d76d2f..08ff3ba 100644
--- a/data.go
+++ b/data.go
@@ -165,8 +165,8 @@
 }
 
 /*
- * For the given apidConfigId, this function will retrieve all the scopes
- * associated with it
+ * For the given apidConfigId, this function will retrieve all the distinch scopes
+ * associated with it. Distinct, because scope is already a collection of the tenants.
  */
 func findScopesForId(configId string) (scopes []string) {
 
@@ -175,7 +175,7 @@
 	var scope string
 	db := getDB()
 
-	rows, err := db.Query("select scope from DATA_SCOPE where apid_cluster_id = $1", configId)
+	rows, err := db.Query("select DISTINCT scope from DATA_SCOPE where apid_cluster_id = $1", configId)
 	if err != nil {
 		log.Errorf("Failed to query DATA_SCOPE: %v", err)
 		return
diff --git a/listener_test.go b/listener_test.go
index 1d1e896..71adfc3 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -71,9 +71,41 @@
 							{
 								"id":              &common.ColumnVal{Value: "i"},
 								"apid_cluster_id": &common.ColumnVal{Value: "a"},
-								"scope":           &common.ColumnVal{Value: "s"},
+								"scope":           &common.ColumnVal{Value: "s1"},
 								"org":             &common.ColumnVal{Value: "o"},
-								"env":             &common.ColumnVal{Value: "e"},
+								"env":             &common.ColumnVal{Value: "e1"},
+								"created":         &common.ColumnVal{Value: "c"},
+								"created_by":      &common.ColumnVal{Value: "c"},
+								"updated":         &common.ColumnVal{Value: "u"},
+								"updated_by":      &common.ColumnVal{Value: "u"},
+							},
+						},
+					},
+					{
+						Name: LISTENER_TABLE_DATA_SCOPE,
+						Rows: []common.Row{
+							{
+								"id":              &common.ColumnVal{Value: "j"},
+								"apid_cluster_id": &common.ColumnVal{Value: "a"},
+								"scope":           &common.ColumnVal{Value: "s1"},
+								"org":             &common.ColumnVal{Value: "o"},
+								"env":             &common.ColumnVal{Value: "e2"},
+								"created":         &common.ColumnVal{Value: "c"},
+								"created_by":      &common.ColumnVal{Value: "c"},
+								"updated":         &common.ColumnVal{Value: "u"},
+								"updated_by":      &common.ColumnVal{Value: "u"},
+							},
+						},
+					},
+					{
+						Name: LISTENER_TABLE_DATA_SCOPE,
+						Rows: []common.Row{
+							{
+								"id":              &common.ColumnVal{Value: "k"},
+								"apid_cluster_id": &common.ColumnVal{Value: "a"},
+								"scope":           &common.ColumnVal{Value: "s2"},
+								"org":             &common.ColumnVal{Value: "o"},
+								"env":             &common.ColumnVal{Value: "e3"},
 								"created":         &common.ColumnVal{Value: "c"},
 								"created_by":      &common.ColumnVal{Value: "c"},
 								"updated":         &common.ColumnVal{Value: "u"},
@@ -141,17 +173,29 @@
 				dds = append(dds, d)
 			}
 
-			Expect(len(dds)).To(Equal(1))
+			Expect(len(dds)).To(Equal(3))
 			ds := dds[0]
 
 			Expect(ds.ID).To(Equal("i"))
 			Expect(ds.Org).To(Equal("o"))
-			Expect(ds.Env).To(Equal("e"))
-			Expect(ds.Scope).To(Equal("s"))
+			Expect(ds.Env).To(Equal("e1"))
+			Expect(ds.Scope).To(Equal("s1"))
 			Expect(ds.Created).To(Equal("c"))
 			Expect(ds.CreatedBy).To(Equal("c"))
 			Expect(ds.Updated).To(Equal("u"))
 			Expect(ds.UpdatedBy).To(Equal("u"))
+
+			ds = dds[1]
+			Expect(ds.Env).To(Equal("e2"))
+			Expect(ds.Scope).To(Equal("s1"))
+			ds = dds[2]
+			Expect(ds.Env).To(Equal("e3"))
+			Expect(ds.Scope).To(Equal("s2"))
+
+			scopes := findScopesForId("a")
+			Expect(len(scopes)).To(Equal(2))
+			Expect(scopes[0]).To(Equal("s1"))
+			Expect(scopes[1]).To(Equal("s2"))
 		})
 	})
 
@@ -204,7 +248,22 @@
 							NewRow: common.Row{
 								"id":              &common.ColumnVal{Value: "i"},
 								"apid_cluster_id": &common.ColumnVal{Value: "a"},
-								"scope":           &common.ColumnVal{Value: "s"},
+								"scope":           &common.ColumnVal{Value: "s1"},
+								"org":             &common.ColumnVal{Value: "o"},
+								"env":             &common.ColumnVal{Value: "e"},
+								"created":         &common.ColumnVal{Value: "c"},
+								"created_by":      &common.ColumnVal{Value: "c"},
+								"updated":         &common.ColumnVal{Value: "u"},
+								"updated_by":      &common.ColumnVal{Value: "u"},
+							},
+						},
+						{
+							Operation: common.Insert,
+							Table:     LISTENER_TABLE_DATA_SCOPE,
+							NewRow: common.Row{
+								"id":              &common.ColumnVal{Value: "j"},
+								"apid_cluster_id": &common.ColumnVal{Value: "a"},
+								"scope":           &common.ColumnVal{Value: "s2"},
 								"org":             &common.ColumnVal{Value: "o"},
 								"env":             &common.ColumnVal{Value: "e"},
 								"created":         &common.ColumnVal{Value: "c"},
@@ -236,17 +295,25 @@
 					dds = append(dds, d)
 				}
 
-				Expect(len(dds)).To(Equal(1))
+				Expect(len(dds)).To(Equal(2))
 				ds := dds[0]
 
 				Expect(ds.ID).To(Equal("i"))
 				Expect(ds.Org).To(Equal("o"))
 				Expect(ds.Env).To(Equal("e"))
-				Expect(ds.Scope).To(Equal("s"))
+				Expect(ds.Scope).To(Equal("s1"))
 				Expect(ds.Created).To(Equal("c"))
 				Expect(ds.CreatedBy).To(Equal("c"))
 				Expect(ds.Updated).To(Equal("u"))
 				Expect(ds.UpdatedBy).To(Equal("u"))
+
+				ds = dds[1]
+				Expect(ds.Scope).To(Equal("s2"))
+
+				scopes := findScopesForId("a")
+				Expect(len(scopes)).To(Equal(2))
+				Expect(scopes[0]).To(Equal("s1"))
+				Expect(scopes[1]).To(Equal("s2"))
 			})
 
 			It("delete event should delete", func() {
