diff --git a/pygit2.c b/pygit2.c
index 760d8a4..ff68f86 100644
--- a/pygit2.c
+++ b/pygit2.c
@@ -737,6 +737,24 @@ Commit_set_author(Commit *commit, PyObject *value) {
     return 0;
 }
 
+static PyObject *
+Commit_get_tree(Commit *commit) {
+    const git_tree *tree;
+    Tree *py_tree;
+
+    tree = git_commit_tree(commit->commit);
+    if (tree == NULL)
+        Py_RETURN_NONE;
+
+    py_tree = PyObject_New(Tree, &TreeType);
+    Py_INCREF(commit->repo);
+    py_tree->repo = commit->repo;
+    py_tree->own_obj = 0;
+    py_tree->tree = (git_tree*)tree;
+
+    return (PyObject*)py_tree;
+}
+
 static PyGetSetDef Commit_getseters[] = {
     {"message_short", (getter)Commit_get_message_short, NULL, "short message",
      NULL},
@@ -748,6 +766,7 @@ static PyGetSetDef Commit_getseters[] = {
      (setter)Commit_set_committer, "committer", NULL},
     {"author", (getter)Commit_get_author,
      (setter)Commit_set_author, "author", NULL},
+    {"tree", (getter)Commit_get_tree, NULL, "tree object"},
     {NULL}
 };
 
diff --git a/test/test_commit.py b/test/test_commit.py
index 245490e..640a3fd 100644
--- a/test/test_commit.py
+++ b/test/test_commit.py
@@ -47,10 +47,13 @@ class CommitTest(utils.BareRepoTestCase):
                          commit.message)
         commit_time = 1288481576
         self.assertEqual(commit_time, commit.commit_time)
-        self.assertEqual(('Dave Borowitz', 'dborowitz@google.com', commit_time),
-                         commit.committer)
+        self.assertEqual(
+            ('Dave Borowitz', 'dborowitz@google.com', commit_time),
+            commit.committer)
         self.assertEqual(('Dave Borowitz', 'dborowitz@google.com', 1288477363),
                          commit.author)
+        self.assertEqual(
+            '967fce8df97cc71722d3c2a5930ef3e6f1d27b12', commit.tree.sha)
 
     def test_new_commit(self):
         message = 'New commit.\n\nMessage.\n'
@@ -71,6 +74,7 @@ class CommitTest(utils.BareRepoTestCase):
         #self.assertEqual(12346, commit.commit_time)
         self.assertEqual(committer, commit.committer)
         self.assertEqual(author, commit.author)
+        self.assertEqual(None, commit.tree)
 
     def test_modify_commit(self):
         message = 'New commit.\n\nMessage.\n'