diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h
index 1536f81..d18cc5d 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -77,10 +77,10 @@
   {
    if(scope_)
    {
-     delete scope_; 
-     scope_ = NULL; 
+     delete scope_;
+     scope_ = NULL;
    }
-  } 
+  }
 
   // Path accessor
   const std::string& get_path() const { return path_; }
diff --git a/compiler/cpp/src/parse/t_scope.h b/compiler/cpp/src/parse/t_scope.h
index 4617bf8..e73c0f3 100644
--- a/compiler/cpp/src/parse/t_scope.h
+++ b/compiler/cpp/src/parse/t_scope.h
@@ -65,7 +65,6 @@
     } else {
       constants_[name] = constant;
     }
-		   
   }
 
   t_const* get_constant(std::string name) {
diff --git a/compiler/cpp/src/parse/t_struct.h b/compiler/cpp/src/parse/t_struct.h
index 621f42e..8dd4c73 100644
--- a/compiler/cpp/src/parse/t_struct.h
+++ b/compiler/cpp/src/parse/t_struct.h
@@ -81,7 +81,7 @@
         }
       }
     }
-    
+
   }
 
   void validate_union_members() {
@@ -90,7 +90,7 @@
       for (m_iter = members_in_id_order_.begin(); m_iter != members_in_id_order_.end(); ++m_iter) {
         validate_union_member( *m_iter);
       }
-      members_validated = true;          
+      members_validated = true;
     }
   }
 
@@ -117,7 +117,7 @@
     }
     // returns false when there is a conflict of field names
     if (get_field_by_name(elem->get_name()) != NULL) {
-      return false; 
+      return false;
     }
     members_.push_back(elem);
     members_in_id_order_.insert(bounds.second, elem);
@@ -140,7 +140,7 @@
   bool is_xception() const {
     return is_xception_;
   }
-  
+
   bool is_union() const {
     return is_union_;
   }
@@ -153,7 +153,7 @@
     for (m_iter = members_in_id_order_.begin(); m_iter != members_in_id_order_.end(); ++m_iter) {
       rv += (*m_iter)->get_fingerprint_material();
       rv += ";";
-      
+
       if( do_reserve) {
         estimation = members_in_id_order_.size() * rv.size() + 16;
         rv.reserve( estimation);
diff --git a/compiler/cpp/src/parse/t_typedef.h b/compiler/cpp/src/parse/t_typedef.h
index 52a7567..57d8df5 100644
--- a/compiler/cpp/src/parse/t_typedef.h
+++ b/compiler/cpp/src/parse/t_typedef.h
@@ -73,7 +73,7 @@
       std::string ret = get_type()->get_fingerprint_material();
       seen_ = false;
       return ret;
-    } 
+    }
     return "";
   }
 
