--- functions_org.c	2015-11-06 10:21:40.707992184 +0530
+++ functions.c	2016-01-07 10:14:58.032662338 +0530
@@ -110,8 +110,7 @@
 
     /* Check if already present */
     func = (exsltFuncFunctionData*)xmlHashLookup2(ch->hash, URI, name);
-    if (func == NULL) {		/* Not yet present - copy it in */
-	func = exsltFuncNewFunctionData();
+    if ((func == NULL) && (func = exsltFuncNewFunctionData())) {		/* Not yet present - copy it in */
 	memcpy(func, data, sizeof(exsltFuncFunctionData));
 	if (xmlHashAddEntry2(ch->hash, URI, name, func) < 0) {
 	    xsltGenericError(xsltGenericErrorContext,
