Ensure datascopes don't pick redundant scopes.
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() {