diff --git a/cmd/rdpgw/protocol/server.go b/cmd/rdpgw/protocol/server.go
index b8371e9ab6a756ba2a3152c69ffc06eaef01f665..15d8f97601d19707a3cd5ccc2ced51563127f48c 100644
--- a/cmd/rdpgw/protocol/server.go
+++ b/cmd/rdpgw/protocol/server.go
@@ -165,10 +165,10 @@ func (s *Server) Process(ctx context.Context) error {
 				log.Printf("Channel closed while in wrong state %d != %d", s.State, SERVER_STATE_OPENED)
 				return errors.New("wrong state")
 			}
+			log.Printf("Channel closed")
 			s.Session.TransportIn.Close()
 			s.Session.TransportOut.Close()
 			s.State = SERVER_STATE_CLOSED
-			log.Printf("Channel closed")
 			return nil
 		default:
 			log.Printf("Unknown packet (size %d): %x", sz, pkt)