diff --git a/build/Android.common.mk b/build/Android.common.mk
index aeb4c79..bcac723 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -325,6 +325,7 @@
 	src/jdwp/jdwp.h \
 	src/jdwp/jdwp_constants.h \
 	src/mutex.h \
+	src/object.h \
 	src/thread.h \
 	src/verifier/method_verifier.h
 
diff --git a/src/object.cc b/src/object.cc
index e6dae74..6dda684 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -1569,25 +1569,4 @@
   return trace;
 }
 
-static const char* kClassStatusNames[] = {
-  "Error",
-  "NotReady",
-  "Idx",
-  "Loaded",
-  "Resolved",
-  "Verifying",
-  "RetryVerificationAtRuntime",
-  "Verified",
-  "Initializing",
-  "Initialized"
-};
-std::ostream& operator<<(std::ostream& os, const Class::Status& rhs) {
-  if (rhs >= Class::kStatusError && rhs <= Class::kStatusInitialized) {
-    os << kClassStatusNames[rhs + 1];
-  } else {
-    os << "Class::Status[" << static_cast<int>(rhs) << "]";
-  }
-  return os;
-}
-
 }  // namespace art
diff --git a/src/object.h b/src/object.h
index 7caabde..b6455db 100644
--- a/src/object.h
+++ b/src/object.h
@@ -109,7 +109,7 @@
 #if defined(ART_USE_LLVM_COMPILER)
 namespace compiler_llvm {
   class InferredRegCategoryMap;
-}
+} // namespace compiler_llvm
 #endif
 
 static const uint32_t kAccPublic = 0x0001;  // class, field, method, ic
@@ -1136,7 +1136,8 @@
 // provides the static storage. However, this might change to an Array
 // to improve image sharing, so we use this type to avoid assumptions
 // on the current storage.
-class MANAGED StaticStorageBase : public Object {};
+class MANAGED StaticStorageBase : public Object {
+};
 
 // C++ mirror of java.lang.Class
 class MANAGED Class : public StaticStorageBase {
@@ -2561,8 +2562,7 @@
   }
 
  private:
-
-  enum ArrayIndex {
+  enum {
     // Points to the interface class.
     kInterface   = 0,
     // Method pointers into the vtable, allow fast map from interface
diff --git a/tools/generate-operator-out.py b/tools/generate-operator-out.py
index ba2b4d1..23d6d3e 100755
--- a/tools/generate-operator-out.py
+++ b/tools/generate-operator-out.py
@@ -45,6 +45,7 @@
 
 def Confused(filename, line_number, line):
   sys.stderr.write('%s:%d: confused by:\n%s\n' % (filename, line_number, line))
+  raise Exception("giving up!")
   sys.exit(1)
 
 
@@ -83,7 +84,7 @@
         continue
 
       # Is this the start or end of an enclosing class or struct?
-      m = re.compile(r'^(?:class|struct) (\S+) \{').search(raw_line)
+      m = re.compile(r'^(?:class|struct)(?: MANAGED)? (\S+).* \{').search(raw_line)
       if m:
         enclosing_classes.append(m.group(1))
         continue
@@ -102,8 +103,13 @@
       in_enum = False
       continue
 
-    # Whitespace?
-    line = raw_line.strip()
+    # Strip // comments.
+    line = re.sub(r'//.*', '', raw_line)
+
+    # Strip whitespace.
+    line = line.strip()
+
+    # Skip blank lines.
     if len(line) == 0:
       continue
 
