diff -ur plplot-5.9.6-orig//bindings/python/Plframe.py plplot-5.9.6/bindings/python/Plframe.py
--- plplot-5.9.6-orig//bindings/python/Plframe.py	2010-06-05 10:11:39.000000000 -0600
+++ plplot-5.9.6/bindings/python/Plframe.py	2010-06-17 23:29:12.123539000 -0600
@@ -1249,6 +1249,9 @@
 ##		 min_col, min_wid, max_col, max_wid, rect,
 ##		 pltr, xg, yg, wrap )
 
+    def plsmem( nx, ny, plotmem ):
+	s.cmd( 'plsmem', nx, ny, plotmem )
+
     def plssub( s, nx, ny ):
 	s.cmd( 'plssub', nx, ny )
 
diff -ur plplot-5.9.6-orig//bindings/swig-support/plplotcapi.i plplot-5.9.6/bindings/swig-support/plplotcapi.i
--- plplot-5.9.6-orig//bindings/swig-support/plplotcapi.i	2010-06-05 10:11:39.000000000 -0600
+++ plplot-5.9.6/bindings/swig-support/plplotcapi.i	2010-06-30 20:19:00.911796700 -0600
@@ -774,12 +774,14 @@
 void
 plsmaj(PLFLT def, PLFLT scale);
 
-#if 0
+#ifdef SWIG_PYTHON
 /* plsmem not implemented because don't know how to make block
 of memory available from python. */
-%feature("autodoc", "Set the memory area to be plotted (with the 'mem'
-driver).") plsmem
 
+%include <pybuffer.i>
+%pybuffer_mutable_string(void * plotmem);
+
+%feature("autodoc", "Set the memory area to be plotted (with the 'mem' driver).") plsmem;
 void
 plsmem(PLINT maxx, PLINT maxy, void *plotmem);
 #endif
