Patch and new file by Geoff Furnish for C++ compilation.
diff --git a/Modules/Makefile.pre.in b/Modules/Makefile.pre.in
index f25f204..389227c 100644
--- a/Modules/Makefile.pre.in
+++ b/Modules/Makefile.pre.in
@@ -17,7 +17,7 @@
 srcdir=		@srcdir@
 VPATH=		@srcdir@
 
-@SET_CCC@
+@SET_CXX@
 CC=		@CC@
 RANLIB=		@RANLIB@
 AR=		@AR@
@@ -95,7 +95,8 @@
 FIXOBJS=	config.o getpath.o main.o getbuildinfo.o
 OBJS=		$(MODOBJS) $(FIXOBJS)
 
-MAINOBJ=	python.o
+#MAINOBJ=	python.o
+MAINOBJ=	@MAINOBJ@
 
 SYSLIBS=	$(LIBM) $(LIBC)
 
@@ -243,4 +244,7 @@
 			fi; \
 		done
 
+ccpython.o: ccpython.cc
+	$(CXX) $(CFLAGS) -c $*.cc
+
 # Stuff is appended here by makesetup and make depend
diff --git a/Modules/ccpython.cc b/Modules/ccpython.cc
new file mode 100644
index 0000000..a6e97ff
--- /dev/null
+++ b/Modules/ccpython.cc
@@ -0,0 +1,11 @@
+/* Minimal main program -- everything is loaded from the library */
+
+#include "Python.h"
+
+extern "C"
+DL_EXPORT(int) Py_Main( int argc, char *argv[] );
+
+int main( int argc, char *argv[] )
+{
+	return Py_Main(argc, argv);
+}