+@@ -146,8 +156,9 @@
+      *
+      * use %module(directors="1") modulename at the start of the 
+      * interface file to enable director generation.
+      */
++    String* mod_docstring = NULL;
+     {
+       Node *module = Getattr(n, "module");
+       if (module) {
+         Node *options = Getattr(module, "options");
+@@ -157,8 +168,9 @@
+           }
+           if (Getattr(options, "dirprot")) {
+           allow_dirprot();
+           }
++          mod_docstring = Getattr(options, "docstring");
+         }
+       }
+     }
+ 
+@@ -258,8 +270,13 @@
+           Printv(f_shadow,
+                  "# This file is compatible with both classic and new-style classes.\n",
+                  NIL);
+       }
++
++      if (mod_docstring && Len(mod_docstring)) {
++        Printv(f_shadow, "\n\"\"\"\n", mod_docstring, "\n\"\"\"\n", NIL);
++        Delete(mod_docstring); mod_docstring = NULL;
++      }
+       
+       Printf(f_shadow,"\nimport %s\n\n", module);
+ 
+       if (! modern) {
+@@ -417,17 +434,25 @@