<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -196,7 +196,12 @@ void xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs)
           s = xmlMemMalloc(term.size + 1);
           ei_decode_string(rbuf, &amp;rindex, s);
           xmlDocPtr doc = xmlParseDoc((xmlChar *)s);
-          ret = xmlXPathNewNodeSet((xmlNode *)doc-&gt;children);
+          if (doc)
+            ret = xmlXPathNewNodeSet((xmlNode *)doc-&gt;children);
+          else
+          {
+            fprintf(stderr, &quot;Callback result XML parsing error\n&quot;);
+          }
         }
         else
           fprintf(stderr, &quot;not really tree\n&quot;);</diff>
      <filename>erlxslt.c</filename>
    </modified>
    <modified>
      <diff>@@ -101,11 +101,11 @@ handle_call({register_function, Xmlns, Name, Fun}, _From,
 %% Description: Handling cast messages
 %%--------------------------------------------------------------------
 handle_cast({set_xslt, Uri, Xslt}, State = #state{port = Port}) -&gt;
-    Buf = lists:append([[?CMD_SET_XSLT | Uri], [0], Xslt]),
+    Buf = [?CMD_SET_XSLT | Uri] ++ [0 | Xslt],
     port_command(Port, Buf),
     {noreply, State};
 handle_cast({set_xml, Uri, Xml}, State = #state{port = Port}) -&gt;
-    Buf = lists:append([[?CMD_SET_XML | Uri], [0], Xml]),
+    Buf = [?CMD_SET_XML | Uri] ++ [0 | Xml],
     port_command(Port, Buf),
     {noreply, State};
 handle_cast({set_params, Params}, State = #state{port = Port}) -&gt;
@@ -173,13 +173,15 @@ call_function([Xmlns, Name | Args] = Call, [{Xmlns, Name, Fun} | Functions]) -&gt;
     case erlang:fun_info(Fun, arity) of
 	{arity, ArgsLen} -&gt;
 	    Args2 = lists:reverse(Args),
-	    try apply(Fun, Args2) of
+	    error_logger:info_msg(&quot;Calling XSLT ext function with arguments:~n{~s}~s ~p ~p&quot;,
+				   [Xmlns, Name, Fun, Args2]),
+	    case (catch apply(Fun, Args2)) of
+		{'EXIT', Reason} -&gt;
+		    error_logger:error_msg(&quot;Error calling XSLT ext function with arguments:~n{~s}~s ~p ~p:~nReason: ~p~n&quot;,
+					   [Xmlns, Name, Fun, Args2, Reason]),
+		    &quot;&quot;;
 		R -&gt; R
-	    catch _:Reason -&gt;
-			  error_logger:error_msg(&quot;Error calling XSLT ext function with arguments:~n~p ~p:~nReason: ~p~n&quot;,
-						 [Fun, Args2, Reason]),
-			  &quot;&quot;
-		  end;
+	    end;
 	_ -&gt;
 	    call_function(Call, Functions)
     end;</diff>
      <filename>erlxslt.erl</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>730e92782efa81a0bfb8587f42a317980df06bce</id>
    </parent>
    <parent>
      <id>52080a496c1708eee1221b707b9b49bca78a4ad1</id>
    </parent>
  </parents>
  <author>
    <name>Astro</name>
    <email>astro@spaceboyz.net</email>
  </author>
  <url>http://github.com/astro/erlxslt/commit/538add73bea42c0b9b92fd387b2d059612610a78</url>
  <id>538add73bea42c0b9b92fd387b2d059612610a78</id>
  <committed-date>2008-11-19T05:32:56-08:00</committed-date>
  <authored-date>2008-11-19T05:32:56-08:00</authored-date>
  <message>Merge branch 'master' of git@github.com:astro/erlxslt

Conflicts:
	erlxslt.c</message>
  <tree>4f85e02774b97c364c3ad33eb9ff02498bc671d4</tree>
  <committer>
    <name>Astro</name>
    <email>astro@spaceboyz.net</email>
  </committer>
</commit>
