+@@ -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 @@