            if classinfo.is_struct:
              parent = 'struct ' + classinfo.name
            else:
-@@ -2006,7 +2006,7 @@
+@@ -2008,7 +2009,7 @@ class _NestingState(object):
            if access_match.group(3):
              slots = access_match.group(3)
            error(filename, linenum, 'whitespace/indent', 3,
 -                '%s%s: should be indented +1 space inside %s' % (
 +                '%s%s: should not be indented inside %s' % (
                      access_match.group(2), slots, parent))
- 
+
      # Consume braces or semicolons from what's left of the line
-@@ -3400,7 +3400,7 @@
- 
-   # Check if the line is a header guard.
-   is_header_guard = False
--  if file_extension == 'h':
-+  if (file_extension == 'h' or file_extension == 'hpp'):
-     cppvar = GetHeaderGuardCPPVariable(filename)
-     if (line.startswith('#ifndef %s' % cppvar) or
-         line.startswith('#define %s' % cppvar) or
-@@ -3867,7 +3867,7 @@
-     error(filename, linenum, 'runtime/init', 4,
-           'You seem to be initializing a member variable with itself.')
- 
--  if file_extension == 'h':
-+  if (file_extension == 'h' or file_extension == 'hpp'):
-     # TODO(unknown): check that 1-arg constructors are explicit.
-     #                How to tell it's a constructor?
-     #                (handled in CheckForNonStandardConstructs for now)
-@@ -4011,7 +4011,7 @@
-   # Check for use of unnamed namespaces in header files.  Registration
-   # macros are typically OK, so we allow use of "namespace {" on lines
-   # that end with backslashes.
--  if (file_extension == 'h'
-+  if ((file_extension == 'h' or file_extension == 'hpp')
-       and Search(r'\bnamespace\s*{', line)
-       and line[-1] != '\\'):
-     error(filename, linenum, 'build/namespaces', 4,
-@@ -4552,7 +4552,7 @@
- 
-   CheckForCopyright(filename, lines, error)
- 
--  if file_extension == 'h':
-+  if (file_extension == 'h' or file_extension == 'hpp'):
-     CheckForHeaderGuard(filename, lines, error)
- 
-   RemoveMultiLineComments(filename, lines, error)
+@@ -2637,13 +2638,10 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
+     if (line.count('"', 0, commentpos) -
+         line.count('\\"', 0, commentpos)) % 2 == 0:   # not in quotes
+       # Allow one space for new scopes, two spaces otherwise:
+-      if (not Match(r'^\s*{ //', line) and
+-          ((commentpos >= 1 and
+-            line[commentpos-1] not in string.whitespace) or
+-           (commentpos >= 2 and
+-            line[commentpos-2] not in string.whitespace))):
++      if (commentpos >= 1 and
++            line[commentpos-1] not in string.whitespace):
+         error(filename, linenum, 'whitespace/comments', 2,
+-              'At least two spaces is best between code and comments')
++              'At least a single space is required between code and comments')
+       # There should always be a space between the // and the comment
+       commentend = commentpos + 2
+       if commentend < len(line) and not line[commentend] == ' ':
+@@ -2694,11 +2692,11 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error):
+           'Missing spaces around %s' % match.group(1))
+   # We allow no-spaces around << when used like this: 10<<20, but
+   # not otherwise (particularly, not when used as streams)
+-  # Also ignore using ns::operator<<;
++  # Also ignore 'operator<<'.
+   match = Search(r'(operator|\S)(?:L|UL|ULL|l|ul|ull)?<<(\S)', line)
+   if (match and
+       not (match.group(1).isdigit() and match.group(2).isdigit()) and
+-      not (match.group(1) == 'operator' and match.group(2) == ';')):
++      not (match.group(1) == 'operator')):
+     error(filename, linenum, 'whitespace/operators', 3,
+           'Missing spaces around <<')
+   elif not Match(r'#.*include', line):



 class _PreprocessorInfo(object):
@@ -1993,11 +1995,9 @@
       if access_match:
         classinfo.access = access_match.group(2)
 
-        # Check that access keywords are indented +1 space.  Skip this
-        # check if the keywords are not preceded by whitespaces.
+        # Check that access keywords are not indented.

diff --git a/support/cpplint.py b/support/cpplint.py
index 2ad644e..96e7fbc 100644
--- a/support/cpplint.py
+++ b/support/cpplint.py
@@ -29,6 +29,9 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 # Modified by Adam B (adam@mesosphere.io) to handle hpp files.
+# Modified by Avinash S (avinash@mesosphere.io) to check for at least
+# a __single__ space in comments is required for hpp and cpp files.
+

 """Does google-lint on c++ files.

@@ -1777,16 +1780,16 @@ class _NamespaceInfo(_BlockInfo):
     if self.name:
       # Named namespace
       if not Match((r'};*\s*(//|/\*).*\bnamespace\s+' + re.escape(self.name) +
