diff --git a/lib/mentat/module/netmngr.py b/lib/mentat/module/netmngr.py
index 251c2e2ef465f1705dc19a38612d8984cf879fa3..04af416fd3b5dde031c7dcc2becb08d01fcc7fa0 100644
--- a/lib/mentat/module/netmngr.py
+++ b/lib/mentat/module/netmngr.py
@@ -650,14 +650,15 @@ class MentatNetmngrScript(mentat.script.fetcher.FetcherScript):
         :return: index of network
         :rtype: int
         """
-        if isinstance(network, NetworkModel):
-            for index, net in enumerate(netlist):
-                if network.network == net['network'] and (('netname' in net and network.netname == net['netname']) or network.source == net['source']):
-                    return index
-        else:
-            for index, net in enumerate(netlist):
-                if net.network == network['network'] and (('netname' in network and net.netname == network['netname']) or net.source == network['source']):
-                    return index
+        network = network if isinstance(network, NetworkModel) else networkmodel_from_typeddict(network)
+        for index, net in enumerate(netlist):
+            net = net if isinstance(net, NetworkModel) else networkmodel_from_typeddict(net)
+            # Convert to ipranges object so ranges and CIDRs can be compared.
+            # e.g. 195.113.220.80-195.113.220.95 should be equal to 195.113.220.80/28
+            iprange_net = mentat.datatype.internal.t_net(net.network)
+            iprange_network = mentat.datatype.internal.t_net(network.network)
+            if iprange_net == iprange_network and (net.netname == network.netname or net.source == network.source):
+                return index
         return -1
 
     @staticmethod