diff --git a/routingtable/adjRIBOut/adj_rib_out.go b/routingtable/adjRIBOut/adj_rib_out.go
index d55f98e1291321930e8e473a10602fcb4604feb5..e211479b0480a338259a0dccce1a66b060ebcfe1 100644
--- a/routingtable/adjRIBOut/adj_rib_out.go
+++ b/routingtable/adjRIBOut/adj_rib_out.go
@@ -111,14 +111,19 @@ func (a *AdjRIBOut) RemovePath(pfx bnet.Prefix, p *route.Path) bool {
 	}
 
 	a.rt.RemovePath(pfx, p)
-	pathID, err := a.pathIDManager.releasePath(p)
-	if err != nil {
-		log.Warningf("Unable to release path: %v", err)
-		return true
+
+	// If the neighbar has AddPath capabilities, try to find the PathID
+	if a.neighbor.CapAddPathRX {
+		pathID, err := a.pathIDManager.releasePath(p)
+		if err != nil {
+			log.Warningf("Unable to release path for prefix %s: %v", pfx.String(), err)
+			return true
+		}
+
+		p = p.Copy()
+		p.BGPPath.PathIdentifier = pathID
 	}
 
-	p = p.Copy()
-	p.BGPPath.PathIdentifier = pathID
 	a.removePathFromClients(pfx, p)
 	return true
 }