diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
index bff23cc..fa82294 100644
--- a/bindings/python/clang/cindex.py
+++ b/bindings/python/clang/cindex.py
@@ -1094,7 +1094,7 @@
         """Return the semantic parent for this cursor."""
         if not hasattr(self, '_semantic_parent'):
             self._semantic_parent = Cursor_semantic_parent(self)
-        
+
         return self._semantic_parent
 
     @property
@@ -1102,9 +1102,9 @@
         """Return the lexical parent for this cursor."""
         if not hasattr(self, '_lexical_parent'):
             self._lexical_parent = Cursor_lexical_parent(self)
-        
+
         return self._lexical_parent
-		
+
     def get_children(self):
         """Return an iterator for accessing the children of this cursor."""
 
diff --git a/bindings/python/tests/cindex/test_cursor.py b/bindings/python/tests/cindex/test_cursor.py
index 8b12f8d..eda74f0 100644
--- a/bindings/python/tests/cindex/test_cursor.py
+++ b/bindings/python/tests/cindex/test_cursor.py
@@ -80,7 +80,7 @@
         class C {
             void f();
         }
-        
+
         void C::f() { }
     """
 def test_semantic_parent():
@@ -89,7 +89,7 @@
     decl = get_cursor(tu, 'C')
     assert(len(curs) == 2)
     assert(curs[0].semantic_parent == curs[1].semantic_parent)
-    assert(curs[0].semantic_parent == decl)   
+    assert(curs[0].semantic_parent == decl)
 
 def test_lexical_parent():
     tu = get_tu(kParentTest, 'cpp')
@@ -97,7 +97,7 @@
     decl = get_cursor(tu, 'C')
     assert(len(curs) == 2)
     assert(curs[0].lexical_parent != curs[1].lexical_parent)
-    assert(curs[0].lexical_parent == decl)   
+    assert(curs[0].lexical_parent == decl)
     assert(curs[1].lexical_parent == tu.cursor)
 
 def test_enum_type():
