diff --git a/lib/gat/client.go b/lib/gat/client.go
index 95b0b7176298e120919677fc6d471c15933a6bca..938042e374042db36631322a4ac74548ba32c5a8 100644
--- a/lib/gat/client.go
+++ b/lib/gat/client.go
@@ -183,7 +183,9 @@ func (c *Client) Accept(ctx context.Context) error {
 		}
 	}
 	c.log.Debug().Msg("Password authentication successful")
-	err = WriteAuthOk(c.wr)
+	authOk := new(protocol.Authentication)
+	authOk.Fields.Data = []byte{0, 0, 0, 0}
+	_, err = authOk.Write(c.wr)
 	if err != nil {
 		return err
 	}
@@ -191,11 +193,16 @@ func (c *Client) Accept(ctx context.Context) error {
 	if err != nil {
 		return err
 	}
-	err = WriteBackendKeyData(c.wr, c.pid, c.secret_key)
+	backendKeyData := new(protocol.BackendKeyData)
+	backendKeyData.Fields.ProcessID = c.pid
+	backendKeyData.Fields.SecretKey = c.secret_key
+	_, err = backendKeyData.Write(c.wr)
 	if err != nil {
 		return err
 	}
-	err = WriteReadyForQuery(c.wr)
+	readyForQuery := new(protocol.ReadyForQuery)
+	readyForQuery.Fields.Status = byte('I')
+	_, err = readyForQuery.Write(c.wr)
 	if err != nil {
 		return err
 	}
diff --git a/lib/gat/protocol/backend.go b/lib/gat/protocol/backend.go
index aca9c0c42252ec3897e04015a1a3225a8f933b38..890b969e0f16bb24ded97be07fd0ea43f240c82f 100644
--- a/lib/gat/protocol/backend.go
+++ b/lib/gat/protocol/backend.go
@@ -1553,26 +1553,36 @@ func (T *PortalSuspended) Write(writer io.Writer) (length int, err error) {
 
 var _ Packet = (*PortalSuspended)(nil)
 
-type FieldsReadForQuery struct {
+type FieldsReadyForQuery struct {
+	Status byte
 }
 
-func (T *FieldsReadForQuery) Read(payloadLength int, reader io.Reader) (err error) {
+func (T *FieldsReadyForQuery) Read(payloadLength int, reader io.Reader) (err error) {
+	T.Status, err = ReadByte(reader)
+	if err != nil {
+		return
+	}
 	return
 }
 
-func (T *FieldsReadForQuery) Write(writer io.Writer) (length int, err error) {
+func (T *FieldsReadyForQuery) Write(writer io.Writer) (length int, err error) {
 	var temp int
+	temp, err = WriteByte(writer, T.Status)
+	if err != nil {
+		return
+	}
+	length += temp
 	_ = temp
 	return
 }
 
-type ReadForQuery struct {
-	Fields FieldsReadForQuery
+type ReadyForQuery struct {
+	Fields FieldsReadyForQuery
 }
 
 // Read reads all but the packet identifier
 // WARNING: This packet DOES have an identifier. Call protocol.Read or trim the identifier first!
-func (T *ReadForQuery) Read(reader io.Reader) (err error) {
+func (T *ReadyForQuery) Read(reader io.Reader) (err error) {
 	var length int32
 	length, err = ReadInt32(reader)
 	if err != nil {
@@ -1581,7 +1591,7 @@ func (T *ReadForQuery) Read(reader io.Reader) (err error) {
 	return T.Fields.Read(int(length-4), reader)
 }
 
-func (T *ReadForQuery) Write(writer io.Writer) (length int, err error) {
+func (T *ReadyForQuery) Write(writer io.Writer) (length int, err error) {
 	// TODO replace with pool
 	var buf bytes.Buffer
 	length, err = T.Fields.Write(&buf)
@@ -1604,7 +1614,7 @@ func (T *ReadForQuery) Write(writer io.Writer) (length int, err error) {
 	return
 }
 
-var _ Packet = (*ReadForQuery)(nil)
+var _ Packet = (*ReadyForQuery)(nil)
 
 type FieldsRowDescriptionFields struct {
 	Name            string
diff --git a/lib/gat/protocol/mod.go b/lib/gat/protocol/mod.go
index aa3e82f3555c80aa7d674a1ed21a152211eed07f..a62b287d85cb1cfa3c4e64a3ebe0ba634bbad3a6 100644
--- a/lib/gat/protocol/mod.go
+++ b/lib/gat/protocol/mod.go
@@ -86,7 +86,7 @@ func Read(reader io.Reader) (packet Packet, err error) {
 	case byte('Q'):
 		packet = new(Query)
 	case byte('Z'):
-		packet = new(ReadForQuery)
+		packet = new(ReadyForQuery)
 	case byte('T'):
 		packet = new(RowDescription)
 	case byte('p'):
diff --git a/spec/protocol/backend.yaml b/spec/protocol/backend.yaml
index 467c2c3526fa984bcbbddbdb0bde77be9e5eeb3d..eeffccbd2ab996ff774c3c0128c5c1ef207f0ef7 100644
--- a/spec/protocol/backend.yaml
+++ b/spec/protocol/backend.yaml
@@ -122,8 +122,11 @@ ParseComplete:
   Identifier: '1'
 PortalSuspended:
   Identifier: 's'
-ReadForQuery:
+ReadyForQuery:
   Identifier: 'Z'
+  Fields:
+    - Name: Status
+      Type: byte
 RowDescription:
   Identifier: 'T'
   Fields: