anchor.diff:  
   <%  // Get parameters
       int start = ParamUtils.getIntParameter(request,"start",0);
  -    int range = ParamUtils.getIntParameter(request,"range",15);
  +    int range = ParamUtils.getIntParameter(request,"range",DEFAULT_RANGE);
  +    boolean setRange = request.getParameter("range") != null;
  +
  +    if (setRange) {
  +        User user = webManager.getUser();
  +        if (user != null) {
  +            if (range == DEFAULT_RANGE) {
  +                user.deleteProperty(USER_RANGE_PROP);
  +            }
  +            else {
  +                user.setProperty(USER_RANGE_PROP, String.valueOf(range));
  +            }
  +        }
  +    }
  +
  +    // Adjust the range based on the user's settings
  +    if (webManager.getUser() != null) {
  +        User user = webManager.getUser();
  +        try {
  +            range = Integer.parseInt(user.getProperty(USER_RANGE_PROP));
  +        }
  +        catch (Exception e) {
  +            user.deleteProperty(USER_RANGE_PROP);
  +        }
  +    }
   
       // Get the user manager
       int userCount = webManager.getUserManager().getUserCount();
  
positive.code:             String sep = ((i+1)<numPages) ? " " : "";
              boolean isCurrent = (i+1) == curPage;
      %>
          <a href="user-summary.jsp?start=<%= (i*range) %>"
           class="<%= ((isCurrent) ? "jive-current" : "") %>"
           ><%= (i+1) %></a><%= sep %>
  
      <%  } %>
      ]
      </p>
  
  <%  } %>
  
negative.code: 
  <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
  <%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
  
  <%!
      final int DEFAULT_RANGE = 15;
      final int[] RANGE_PRESETS = {15, 25, 50, 75, 100};
      final String USER_RANGE_PROP = "admin.userlist.range";
  %>
  
  <jsp:useBean id="webManager" class="org.jivesoftware.util.WebManager"  />
  <% webManager.init(request, response, session, application, out ); %>
  
  