diff --git a/project/projectadmin.py b/project/projectadmin.py
index a6e0d3e..042b198 100644
--- a/project/projectadmin.py
+++ b/project/projectadmin.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.
 
 """Servlets for project administration main subtab."""
 from __future__ import print_function
@@ -16,7 +15,6 @@
 
 from businesslogic import work_env
 from framework import emailfmt
-from framework import flaskservlet
 from framework import framework_helpers
 from framework import gcs_helpers
 from framework import permissions
@@ -37,7 +35,7 @@
   """A page with project configuration options for the Project Owner(s)."""
 
   _PAGE_TEMPLATE = 'project/project-admin-page.ezt'
-  _MAIN_TAB_MODE = flaskservlet.FlaskServlet.MAIN_TAB_ADMIN
+  _MAIN_TAB_MODE = servlet.Servlet.MAIN_TAB_ADMIN
 
   def AssertBasePermission(self, mr):
     super(ProjectAdmin, self).AssertBasePermission(mr)
@@ -122,14 +120,14 @@
 
     logo_gcs_id = ''
     logo_file_name = ''
-    if 'logo' in post_data and not isinstance(post_data['logo'], string_types):
+    if 'logo' in post_data and post_data['logo'].filename != '':
       item = post_data['logo']
       logo_file_name = item.filename
       try:
         logo_gcs_id = gcs_helpers.StoreLogoInGCS(
-            logo_file_name, item.value, mr.project.project_id)
-      except gcs_helpers.UnsupportedMimeType, e:
-        mr.errors.logo = e.message
+            logo_file_name, item.read(), mr.project.project_id)
+      except gcs_helpers.UnsupportedMimeType as e:
+        mr.errors.logo = str(e)
     elif mr.project.logo_gcs_id and mr.project.logo_file_name:
       logo_gcs_id = mr.project.logo_gcs_id
       logo_file_name = mr.project.logo_file_name
@@ -189,8 +187,8 @@
 
     return summary, description
 
-  # def GetProjectAdminPage(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def GetProjectAdminPage(self, **kwargs):
+    return self.handler(**kwargs)
 
-  # def PostProjectAdminPage(self, **kwargs):
-  #   return self.handler(**kwargs)
+  def PostProjectAdminPage(self, **kwargs):
+    return self.handler(**kwargs)
