Doc corrections for %shared_ptr and enhancements for %inline
diff --git a/Doc/Manual/Library.html b/Doc/Manual/Library.html
index 6c9e07b..8939c8d 100644
--- a/Doc/Manual/Library.html
+++ b/Doc/Manual/Library.html
@@ -1923,30 +1923,42 @@
 
 <H4><a name="Library_shared_ptr_templates">9.4.4.3 shared_ptr and templates</a></H4>
 
+<p>
+The <tt>%shared_ptr</tt> macro should be used for all the required instantiations
+of the template before each of the <tt>%template</tt> instantiations.
+For example, consider <tt>number.h</tt> containing the following illustrative template:
+</p>
+
+<div class="code">
+<pre>
+#include &lt;memory&gt;
+
+template&lt;int N&gt; struct Number {
+  int num;
+  Number() : num(N) {}
+  static std::shared_ptr&lt;Number&lt;N&gt;&gt; make() { return std::make_shared&lt;Number&lt;N&gt;&gt;(); }
+};
+</pre>
+</div>
 
 <p>
-Only the single <tt>%shared_ptr</tt> declaration should be used for all specializations
-of the template before the first template instantiation using the following notation:
-<tt>%shared_ptr(TemplateName&lt;&gt;)</tt>. For example:
+The SWIG code below shows the required ordering:
 </p>
 
 <div class="code">
 <pre>
 %include &lt;std_shared_ptr.i&gt;
 
-%shared_ptr(Graph&lt;&gt;);  // Declaration of the transparent shared ptr for the Graph template
+%shared_ptr(Number&lt;10&gt;);
+%shared_ptr(Number&lt;42&gt;);
 
 %{
-  #include "graph.h"  // Graph definition (inside the namespace gany)
-  using namespace gany;
+  #include "number.h"
 %}
+%include "number.h"
 
-%include "graph.h"  // Graph declaration (inside the namespace gany)
-using namespace gany;
-
-%template(SGraph) Graph&lt;false&gt;;  // Simple graph
-// Note: the Graph name is redefined in the following line from the template to the specialization (class)
-%template(WGraph) Graph&lt;true&gt;;  // Weighted graph
+%template(Number10) Number&lt;10&gt;;
+%template(Number42) Number&lt;42&gt;;
 </pre>
 </div>
 
diff --git a/Doc/Manual/SWIG.html b/Doc/Manual/SWIG.html
index a81081d..d677a22 100644
--- a/Doc/Manual/SWIG.html
+++ b/Doc/Manual/SWIG.html
@@ -3306,7 +3306,24 @@
 </pre></div>
 
 <p>
-The <tt>%inline</tt> directive inserts all of the code that follows
+This is the same as writing:
+</p>
+
+<div class="code"><pre>
+%{
+/* Create a new vector */
+Vector *new_Vector() {
+  return (Vector *) malloc(sizeof(Vector));
+}
+%}
+
+/* Create a new vector */
+Vector *new_Vector() {
+  return (Vector *) malloc(sizeof(Vector));
+}
+</pre></div>
+<p>
+In other words, the <tt>%inline</tt> directive inserts all of the code that follows
 verbatim into the header portion of an interface file. The code is
 then parsed by both the SWIG preprocessor and parser.
 Thus, the above example creates a new command <tt>new_Vector</tt> using only one
@@ -3314,10 +3331,10 @@
 is given to both the C compiler and SWIG, it is illegal to include any
 SWIG directives inside a <tt>%{ ... %}</tt> block.</p>
 
+
 <p>
-<b>Note:</b> Any <tt>#include</tt> directives are omitted inside the
-<tt>%inline %{ ... %}</tt> block unless the <tt>-includeall</tt> command line
-option is supplied.</p>
+<b>Note:</b> The usual SWIG C preprocessor rules apply to code in <tt>%apply</tt> blocks when SWIG parses this code. For example, as mentioned earlier, <a href="SWIG.html#SWIG_nn6">SWIG's C Preprocessor</a> does not follow <tt>#include</tt> directives by default.
+</p>
 
 <H3><a name="SWIG_nn44">5.6.4 Initialization blocks</a></H3>