diff --git a/connect/authenticated_test.go b/connect/authenticated_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..9c5ea44a3f6a70baf47d999e95657e5cf1d95a36
--- /dev/null
+++ b/connect/authenticated_test.go
@@ -0,0 +1 @@
+package connect
diff --git a/connect/connect.go b/connect/connect.go
index 985b80fb6e1109f6006113f4f9f369860956c5b5..ff6bf31339fa1e567c8abb2888cb9c3ae8e2b18c 100644
--- a/connect/connect.go
+++ b/connect/connect.go
@@ -7,6 +7,7 @@
 package connect
 
 import (
+	"fmt"
 	"github.com/pkg/errors"
 	jww "github.com/spf13/jwalterweatherman"
 	"gitlab.com/elixxir/client/auth"
@@ -169,8 +170,9 @@ func StartServer(cb Callback, myId *id.ID, privKey *cyclic.Int,
 	callback := getAuthCallback(cb, e2eHandler, p)
 
 	// Build auth object for E2E negotiation
-	_, err = auth.NewState(kv, net, e2eHandler,
+	authState, err := auth.NewState(kv, net, e2eHandler,
 		rng, p.Event, p.Auth, callback, nil)
+	callback.authState = authState
 	return err
 }
 
@@ -208,6 +210,7 @@ func (h *handler) GetPartner() partner.Manager {
 func (h *handler) SendE2E(mt catalog.MessageType, payload []byte,
 	params clientE2e.Params) (
 	[]id.Round, e2e.MessageID, time.Time, error) {
+	fmt.Printf("sending e2e\n")
 	return h.e2e.SendE2E(mt, h.partner.PartnerId(), payload, params)
 }
 
@@ -235,13 +238,14 @@ type authCallback struct {
 	// Used for building new Connection objects
 	connectionE2e    clientE2e.Handler
 	connectionParams Params
+	authState        auth.State
 }
 
 // getAuthCallback returns a callback interface to be passed into the creation
 // of an auth.State object.
 func getAuthCallback(cb Callback, e2e clientE2e.Handler,
-	params Params) authCallback {
-	return authCallback{
+	params Params) *authCallback {
+	return &authCallback{
 		connectionCallback: cb,
 		connectionE2e:      e2e,
 		connectionParams:   params,
@@ -272,6 +276,13 @@ func (a authCallback) Confirm(requestor contact.Contact,
 // Request will be called when an auth Request message is processed.
 func (a authCallback) Request(requestor contact.Contact,
 	receptionID receptionID.EphemeralIdentity, round rounds.Round) {
+	_, err := a.authState.Confirm(requestor)
+	if err != nil {
+		jww.ERROR.Printf("Unable to build connection with "+
+			"partner %s: %+v", requestor.ID, err)
+		// Send a nil connection to avoid hold-ups down the line
+		a.connectionCallback(nil)
+	}
 }
 
 // Reset will be called when an auth Reset operation occurs.
diff --git a/connect/utils_test.go b/connect/utils_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..9c5ea44a3f6a70baf47d999e95657e5cf1d95a36
--- /dev/null
+++ b/connect/utils_test.go
@@ -0,0 +1 @@
+package connect