Added a HIGHEST_PROTOCOL module attribute to pickle and cPickle.
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index a9bbd36..17da7d7 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -15,7 +15,7 @@
 #define WRITE_BUF_SIZE 256
 
 /* Bump this when new opcodes are added to the pickle protocol. */
-#define CURRENT_PROTOCOL_NUMBER 2
+#define HIGHEST_PROTOCOL 2
 
 /*
  * Pickle opcodes.  These must be kept in synch with pickle.py.  Extensive
@@ -2743,11 +2743,11 @@
 	Picklerobject *self;
 
 	if (proto < 0)
-		proto = CURRENT_PROTOCOL_NUMBER;
-	if (proto > CURRENT_PROTOCOL_NUMBER) {
+		proto = HIGHEST_PROTOCOL;
+	if (proto > HIGHEST_PROTOCOL) {
 		PyErr_Format(PyExc_ValueError, "pickle protocol %d asked for; "
 			     "the highest available protocol is %d",
-			     proto, CURRENT_PROTOCOL_NUMBER);
+			     proto, HIGHEST_PROTOCOL);
 		return NULL;
 	}
 
@@ -4308,7 +4308,7 @@
 	 * int when chewing on 1 byte.
 	 */
 	assert(i >= 0);
-	if (i <= CURRENT_PROTOCOL_NUMBER)
+	if (i <= HIGHEST_PROTOCOL)
 		return 0;
 
 	PyErr_Format(PyExc_ValueError, "unsupported pickle protocol: %d", i);
@@ -5562,6 +5562,10 @@
 	}
 	Py_DECREF(di);
 
+	i = PyModule_AddIntConstant(m, "HIGHEST_PROTOCOL", HIGHEST_PROTOCOL);
+	if (i < 0)
+		return;
+
 	/* These are purely informational; no code uses them. */
 	/* File format version we write. */
 	format_version = PyString_FromString("2.0");