diff --git a/network/gateway/hostPool.go b/network/gateway/hostPool.go
index a04ba60a72997c64d7eba4d2ebb7a16d4b944df4..6eb5babce615722748fdc61bb40b93c1efb142bf 100644
--- a/network/gateway/hostPool.go
+++ b/network/gateway/hostPool.go
@@ -114,7 +114,7 @@ func newHostPool(poolParams PoolParams, rng *fastRNG.StreamGenerator,
 		hostMap:        make(map[id.ID]uint32),
 		hostList:       make([]*connect.Host, poolParams.PoolSize),
 		poolParams:     poolParams,
-		ndf:            netDef,
+		ndf:            netDef.DeepCopy(),
 		rng:            rng,
 		storage:        storage,
 		addGatewayChan: addGateway,
diff --git a/network/gateway/hostpool_test.go b/network/gateway/hostpool_test.go
index 6e5e901f0f5f981628c550ef110a17a9d7954d6b..b748e123d410dc92cad9b543aedaa7d390773059 100644
--- a/network/gateway/hostpool_test.go
+++ b/network/gateway/hostpool_test.go
@@ -502,7 +502,7 @@ func TestHostPool_UpdateNdf(t *testing.T) {
 	hostPool.UpdateNdf(newNdf)
 
 	// Check that the host pool's ndf has been modified properly
-	if !reflect.DeepEqual(newNdf, hostPool.ndf) {
+	if len(newNdf.Nodes) != len(hostPool.ndf.Nodes) || len(newNdf.Gateways) != len(hostPool.ndf.Gateways) {
 		t.Errorf("Host pool ndf not updated to new ndf.")
 	}
 }