diff --git a/pygit2.c b/pygit2.c
index a970589..760d8a4 100644
--- a/pygit2.c
+++ b/pygit2.c
@@ -373,8 +373,7 @@ Repository_walk(Repository *self, PyObject *args)
     git_revwalk *walk;
     Walker *py_walker;
 
-    sort = GIT_SORT_TOPOLOGICAL | GIT_SORT_REVERSE;
-    if (!PyArg_ParseTuple(args, "O|I", &value, &sort))
+    if (!PyArg_ParseTuple(args, "OI", &value, &sort))
         return NULL;
 
     if (value != Py_None && !PyString_Check(value)) {
diff --git a/test/data/testrepo.tar b/test/data/testrepo.tar
index 3f64912..1b613a8 100644
Binary files a/test/data/testrepo.tar and b/test/data/testrepo.tar differ
diff --git a/test/test_index.py b/test/test_index.py
index 8dee69d..19a41da 100644
--- a/test/test_index.py
+++ b/test/test_index.py
@@ -50,16 +50,16 @@ class IndexTest(utils.RepoTestCase):
         index = self.repo.index
         self.assertEqual(len(index), 0)
         index.read()
-        self.assertEqual(len(index), 1)
+        self.assertEqual(len(index), 2)
 
         self.assertRaises(TypeError, lambda: index[()])
         self.assertRaisesWithArg(ValueError, -4, lambda: index[-4])
         self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc'])
 
-        sha = '3b18e512dba79e4c8300dd08aeb37f8e728b8dad'
+        sha = 'a520c24d85fbfc815d385957eed41406ca5a860b'
         self.assertTrue('hello.txt' in index)
         self.assertEqual(index['hello.txt'].sha, sha)
-        self.assertEqual(index[0].sha, sha)
+        self.assertEqual(index[1].sha, sha)
 
     def test_add(self):
         index = self.repo.index
@@ -69,13 +69,13 @@ class IndexTest(utils.RepoTestCase):
         self.assertFalse('bye.txt' in index)
         index.add('bye.txt', 0)
         self.assertTrue('bye.txt' in index)
-        self.assertEqual(len(index), 2)
+        self.assertEqual(len(index), 3)
         self.assertEqual(index['bye.txt'].sha, sha)
 
     def test_clear(self):
         index = self.repo.index
         index.read()
-        self.assertEqual(len(index), 1)
+        self.assertEqual(len(index), 2)
         index.clear()
         self.assertEqual(len(index), 0)
 
diff --git a/test/test_revwalk.py b/test/test_revwalk.py
index b3b5171..5fa912d 100644
--- a/test/test_revwalk.py
+++ b/test/test_revwalk.py
@@ -30,12 +30,37 @@
 
 __author__ = 'jdavid@itaapy.com (J. David Ibáñez)'
 
+import unittest
+
+from pygit2 import GIT_SORT_TIME, GIT_SORT_REVERSE
 import utils
 
+# In the order given by git log
+log = [
+    '2be5719152d4f82c7302b1c0932d8e5f0a4a0e98',
+    '5ebeeebb320790caf276b9fc8b24546d63316533',
+    '4ec4389a8068641da2d6578db0419484972284c8',
+    '6aaa262e655dd54252e5813c8e5acd7780ed097d',
+    'acecd5ea2924a4b900e7e149496e1f4b57976e51']
 
-class WalkerTest(utils.BareRepoTestCase):
+
+class WalkerTest(utils.RepoTestCase):
 
     def test_walk(self):
-        history = self.repo.walk("5fe808e8953c12735680c257f56600cb0de44b10")
-        history = list(history)
-        self.assertEqual(len(history), 2)
+        walker = self.repo.walk(log[0], GIT_SORT_TIME)
+        out = [ x.sha for x in walker ]
+        self.assertEqual(out, log)
+
+    def test_reverse(self):
+        walker = self.repo.walk(log[0], GIT_SORT_TIME | GIT_SORT_REVERSE)
+        out = [ x.sha for x in walker ]
+        self.assertEqual(out, list(reversed(log)))
+
+    def test_hide(self):
+        walker = self.repo.walk(log[0], GIT_SORT_TIME)
+        walker.hide('4ec4389a8068641da2d6578db0419484972284c8')
+        self.assertEqual(len(list(walker)), 2)
+
+
+if __name__ == '__main__':
+    unittest.main()