diff --git a/generate_changelog.py b/generate_changelog.py
new file mode 100755
index 0000000..d90a9b7
--- /dev/null
+++ b/generate_changelog.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+
+"""Generates a friendly list of changes per language since the last release."""
+
+import sys
+import os
+
+class Language(object):
+  def __init__(self, name, pathspec):
+    self.name = name
+    self.pathspec = pathspec
+
+languages = [
+  Language("C++", [
+      "':(glob)src/google/protobuf/*'",
+      "src/google/protobuf/compiler/cpp",
+      "src/google/protobuf/io",
+      "src/google/protobuf/util",
+      "src/google/protobuf/stubs",
+  ]),
+  Language("Java", [
+      "java",
+      "javanano",
+      "src/google/protobuf/compiler/cpp",
+  ]),
+  Language("Python", [
+      "javanano",
+      "src/google/protobuf/compiler/python",
+  ]),
+  Language("JavaScript", [
+      "js",
+      "src/google/protobuf/compiler/js",
+  ]),
+  Language("PHP", [
+      "php",
+      "src/google/protobuf/compiler/php",
+  ]),
+  Language("Ruby", [
+      "ruby",
+      "src/google/protobuf/compiler/ruby",
+  ]),
+  Language("Csharp", [
+      "csharp",
+      "src/google/protobuf/compiler/csharp",
+  ]),
+  Language("Objective C", [
+      "objectivec",
+      "src/google/protobuf/compiler/objectivec",
+  ]),
+]
+
+if len(sys.argv) < 2:
+  print("Usage: generate_changelog.py <previous release>")
+  sys.exit(1)
+
+previous = sys.argv[1]
+
+for language in languages:
+  print(language.name)
+  sys.stdout.flush()
+  os.system(("git log --pretty=oneline --abbrev-commit %s...HEAD %s | " +
+             "sed -e 's/^/ - /'") % (previous, " ".join(language.pathspec)))
+  print("")
+
+print("To view a commit on GitHub: " +
+      "https://github.com/google/protobuf/commit/<commit id>")
