diff --git a/project/peopledetail.py b/project/peopledetail.py
index af9cd49..b3b4bca 100644
--- a/project/peopledetail.py
+++ b/project/peopledetail.py
@@ -1,7 +1,6 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """A class to display details about each project member."""
 from __future__ import print_function
@@ -14,7 +13,6 @@
 import ezt
 
 from framework import exceptions
-from framework import flaskservlet
 from framework import framework_bizobj
 from framework import framework_helpers
 from framework import framework_views
@@ -46,7 +44,7 @@
   """People detail page documents one partipant's involvement in a project."""
 
   _PAGE_TEMPLATE = 'project/people-detail-page.ezt'
-  _MAIN_TAB_MODE = flaskservlet.FlaskServlet.MAIN_TAB_PEOPLE
+  _MAIN_TAB_MODE = servlet.Servlet.MAIN_TAB_PEOPLE
 
   def AssertBasePermission(self, mr):
     """Check that the user is allowed to access this servlet."""
@@ -233,9 +231,7 @@
 
     role = post_data.get('role', '').lower()
     extra_perms = []
-    # TODO(crbug.com/monorail/10936): getall in Flask is getlist
-    # for ep in post_data.getlist('extra_perms'):
-    for ep in post_data.getall('extra_perms'):
+    for ep in post_data.getlist('extra_perms'):
       perm = framework_bizobj.CanonicalizeLabel(ep)
       # Perms with leading underscores are reserved.
       perm = perm.strip('_')
@@ -271,8 +267,8 @@
     self.services.project.UpdateProjectRoles(
         cnxn, project.project_id, owner_ids, committer_ids, contributor_ids)
 
-  # def GetPeopleDetailPage(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetPeopleDetailPage(self, **kwargs):
+    return self.handler(**kwargs)
 
-  # def PostPeopleDetailPage(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def PostPeopleDetailPage(self, **kwargs):
+    return self.handler(**kwargs)
