diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go
index fa362fdfb9d90a294128b141e523562a275eb49a..bec06450d58148caa2394019423904de30d7fa5c 100644
--- a/routingtable/adjRIBOut/adj_rib_out.go
+++ b/routingtable/adjRIBOut/adj_rib_out.go
@@ -185,18 +185,20 @@ func (a *AdjRIBOut) removePath(pfx *bnet.Prefix, p *route.Path) bool {
 
 	sentPath := p
 	if a.addPathTX {
-		for _, sentPath := range r.Paths() {
-			if sentPath.Select(p) != 0 {
-				continue
+		for _, sp := range r.Paths() {
+			if sp.Select(p) == 0 {
+				a.rt.RemovePath(pfx, sp)
+
+				_, err := a.pathIDManager.releasePath(p)
+				if err != nil {
+					log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)
+					return true
+				}
+
+				sentPath = sp
+				break
 			}
 
-			a.rt.RemovePath(pfx, sentPath)
-
-			_, err := a.pathIDManager.releasePath(p)
-			if err != nil {
-				log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)
-				return true
-			}
 		}
 
 		if sentPath == p {