diff --git a/src/commit.c b/src/commit.c
index 725a3c4..ef821be 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -32,6 +32,7 @@
 #include "signature.h"
 #include "commit.h"
 #include "object.h"
+#include "oid.h"
 
 extern PyTypeObject TreeType;
 
@@ -120,7 +121,6 @@ Commit_author__get__(Commit *self)
     return build_signature((Object*)self, signature, encoding);
 }
 
-
 PyDoc_STRVAR(Commit_tree__doc__, "The tree object attached to the commit.");
 
 PyObject *
@@ -146,6 +146,13 @@ Commit_tree__get__(Commit *commit)
     return (PyObject*)py_tree;
 }
 
+PyDoc_STRVAR(Commit_tree_id__doc__, "The id of the tree attached to the commit.");
+
+PyObject *
+Commit_tree_id__get__(Commit *commit)
+{
+    return git_oid_to_python(git_commit_tree_id(commit->commit));
+}
 
 PyDoc_STRVAR(Commit_parents__doc__, "The list of parent commits.");
 
@@ -201,6 +208,7 @@ PyGetSetDef Commit_getseters[] = {
     GETTER(Commit, committer),
     GETTER(Commit, author),
     GETTER(Commit, tree),
+    GETTER(Commit, tree_id),
     GETTER(Commit, parents),
     {NULL}
 };
diff --git a/test/test_commit.py b/test/test_commit.py
index 85f3d23..c9e8fba 100644
--- a/test/test_commit.py
+++ b/test/test_commit.py
@@ -31,7 +31,7 @@ from __future__ import absolute_import
 from __future__ import unicode_literals
 import unittest
 
-from pygit2 import GIT_OBJ_COMMIT, Signature
+from pygit2 import GIT_OBJ_COMMIT, Signature, Oid
 from . import utils
 
 
@@ -92,6 +92,7 @@ class CommitTest(utils.BareRepoTestCase):
         self.assertEqualSignature(committer, commit.committer)
         self.assertEqualSignature(author, commit.author)
         self.assertEqual(tree, commit.tree.hex)
+        self.assertEqual(Oid(hex=tree), commit.tree_id)
         self.assertEqual(1, len(commit.parents))
         self.assertEqual(COMMIT_SHA, commit.parents[0].hex)
 
@@ -118,6 +119,7 @@ class CommitTest(utils.BareRepoTestCase):
         self.assertEqualSignature(committer, commit.committer)
         self.assertEqualSignature(author, commit.author)
         self.assertEqual(tree, commit.tree.hex)
+        self.assertEqual(Oid(hex=tree), commit.tree_id)
         self.assertEqual(1, len(commit.parents))
         self.assertEqual(COMMIT_SHA, commit.parents[0].hex)