anchor.diff:          {_From, next, Accepted} when Ready == [] ->
    	    close_accepted_if_max(GS,Accepted),
    	    New = acceptor(GS),
  - 	    GS2 = inc_con(GS),
  + 	    GS2 = GS#gs{connections=GS#gs.connections + 1},
               gserv_loop(GS2#gs{sessions = GS2#gs.sessions + 1}, Ready, Rnum, New);
           {_From, next, Accepted} ->
   	    close_accepted_if_max(GS,Accepted),
               [{_Then, R}|RS] = Ready,
               R ! {self(), accept},
  - 	    GS2 = inc_con(GS),
  + 	    GS2 = GS#gs{connections=GS#gs.connections + 1},
               gserv_loop(GS2, RS, Rnum-1, R);
   	{_From, decrement} ->
  - 	    GS2 = dec_con(GS),
  + 	    GS2 = GS#gs{connections=GS#gs.connections - 1},
    	    gserv_loop(GS2, Ready, Rnum, Last);
           {From, done_client, Int} ->
               GS2 = if
  -		      Int == 0 -> dec_con(GS#gs{sessions = GS#gs.sessions - 1});
  -		      Int > 0 -> dec_con(GS#gs{sessions = GS#gs.sessions - 1,
  - 					       reqs = GS#gs.reqs + Int})
  +		      Int == 0 -> GS#gs{sessions = GS#gs.sessions - 1,
  +                                        connections = GS#gs.connections - 1};
  +		      Int > 0 -> GS#gs{sessions = GS#gs.sessions - 1,
  +                                       reqs = GS#gs.reqs + Int,
  +                                       connections = GS#gs.connections - 1}
                     end,
               if
                   Rnum == 8 ->
  
positive.code:         [] ->
              proc_lib:spawn_link(?MODULE, acceptor0, [GS, self()]);
          Opts ->
              %% as we tightly controlled what is set in options, we can blindly add "link" to
              %% get a linked process as per default case and use the provided options.
              proc_lib:spawn_opt(?MODULE, acceptor0, [GS, self()], [link | Opts])
      end.
  acceptor0(GS, Top) ->
  
negative.code:     end.
  
  
  %% Case-insensitive compare servername and ignore any optional :Port
  %% postfix. This is performance-sensitive code, so if you change it,
  %% measure it.
  comp_sname([], []) ->
      true;
  comp_sname([$:|_], [$:|_]) ->
      true;
  comp_sname([$:|_], []) ->
      true;
  comp_sname([], [$:|_]) ->
      true;
  comp_sname([$:|_], _) ->
      false;
  comp_sname(_, [$:|_]) ->
      false;
  comp_sname([], _) ->
      false;
  comp_sname(_, []) ->
      false;
  comp_sname([C1|T1], [C2|T2]) ->
      case string:to_lower(C1) == string:to_lower(C2) of
          true ->
              comp_sname(T1, T2);
          false ->
              false
      end.
  
  pick_sconf(GC, H, Group) ->
      case H#headers.host of
  