diff --git a/api/client.go b/api/client.go
index 127cbab1da2a8ea427cb56227f1e18ad184ceea3..1af9755c016c880a628d5e4cfa3b4a487ce026e8 100644
--- a/api/client.go
+++ b/api/client.go
@@ -199,7 +199,7 @@ func OpenClient(storageDir string, password []byte, parameters params.Network) (
 	return c, nil
 }
 
-// Login initalizes a client object from existing storage.
+// Login initializes a client object from existing storage.
 func Login(storageDir string, password []byte, parameters params.Network) (*Client, error) {
 	jww.INFO.Printf("Login()")
 
@@ -210,7 +210,7 @@ func Login(storageDir string, password []byte, parameters params.Network) (*Clie
 	}
 
 	u := c.storage.GetUser()
-	jww.INFO.Printf("Client Logged in: \n\tTransmisstionID: %s " +
+	jww.INFO.Printf("Client Logged in: \n\tTransmisstionID: %s "+
 		"\n\tReceptionID: %s", u.TransmissionID, u.ReceptionID)
 
 	//Attach the services interface
@@ -233,7 +233,7 @@ func Login(storageDir string, password []byte, parameters params.Network) (*Clie
 		}
 	} else {
 		jww.WARN.Printf("Registration with permissioning skipped due to " +
-			"blank permissionign address. Client will not be able to register " +
+			"blank permissioning address. Client will not be able to register " +
 			"or track network.")
 	}
 
@@ -342,7 +342,7 @@ func (c *Client) initPermissioning(def *ndf.NetworkDefinition) error {
 			jww.ERROR.Printf("Client has failed registration: %s", err)
 			return errors.WithMessage(err, "failed to load client")
 		}
-		jww.INFO.Printf("Client sucsecfully registered with the network")
+		jww.INFO.Printf("Client successfully registered with the network")
 	}
 	return nil
 }
@@ -380,7 +380,7 @@ func (c *Client) initPermissioning(def *ndf.NetworkDefinition) error {
 //      Handles both auth confirm and requests
 func (c *Client) StartNetworkFollower() (<-chan interfaces.ClientError, error) {
 	u := c.GetUser()
-	jww.INFO.Printf("StartNetworkFollower() \n\tTransmisstionID: %s " +
+	jww.INFO.Printf("StartNetworkFollower() \n\tTransmisstionID: %s "+
 		"\n\tReceptionID: %s", u.TransmissionID, u.ReceptionID)
 
 	c.clientErrorChannel = make(chan interfaces.ClientError, 1000)
diff --git a/network/gateway/hostPool.go b/network/gateway/hostPool.go
index 71ae48456fddbc9541155d97761c7620a156169c..08c12bb1851188252ed7e695f59ceea639a8c0f8 100644
--- a/network/gateway/hostPool.go
+++ b/network/gateway/hostPool.go
@@ -215,7 +215,8 @@ func (h *HostPool) pruneHostPool() error {
 	// Verify the NDF has at least as many Gateways as needed for the HostPool
 	ndfLen := uint32(len(h.ndf.Gateways))
 	if ndfLen == 0 || ndfLen < h.poolParams.PoolSize {
-		return errors.Errorf("no gateways available")
+		return errors.Errorf("Unable to pruneHostPool: %d/%d gateways available",
+			len(h.ndf.Gateways), h.poolParams.PoolSize)
 	}
 
 	for poolIdx := uint32(0); poolIdx < h.poolParams.PoolSize; {
diff --git a/network/manager.go b/network/manager.go
index 2a16b42df1ecab942a8eb221fce1954d49920dd2..66aea799534dfdcb6ad1aa34917085aba1c2350d 100644
--- a/network/manager.go
+++ b/network/manager.go
@@ -91,8 +91,12 @@ func NewManager(session *storage.Session, switchboard *switchboard.Switchboard,
 
 	// Set up gateway.Sender
 	poolParams := gateway.DefaultPoolParams()
+	poolParams.PoolSize = 10
 	m.sender, err = gateway.NewSender(poolParams, rng.GetStream(),
 		ndf, comms, session, m.NodeRegistration)
+	if err != nil {
+		return nil, err
+	}
 
 	//create sub managers
 	m.message = message.NewManager(m.Internal, m.param.Messages, m.NodeRegistration, m.sender)
@@ -138,6 +142,9 @@ func (m *manager) Follow(report interfaces.ClientErrorReport) (stoppable.Stoppab
 	// Round processing
 	multi.Add(m.round.StartProcessors())
 
+	// Message sending
+	multi.Add(m.sender.StartHostPool())
+
 	multi.Add(ephemeral.Track(m.Session, m.ReceptionID))
 
 	return multi, nil