Index: libsoup/soup-xmlrpc-response.c
===================================================================
RCS file: /cvs/gnome/libsoup/libsoup/soup-xmlrpc-response.c,v
retrieving revision 1.5
diff -u -p -r1.5 soup-xmlrpc-response.c
--- libsoup/soup-xmlrpc-response.c	8 Jun 2006 12:40:19 -0000	1.5
+++ libsoup/soup-xmlrpc-response.c	10 Jun 2006 03:18:42 -0000
@@ -251,12 +251,14 @@ soup_xmlrpc_value_get_int (SoupXmlrpcVal
 	/* FIXME this should be exactly one text node */
 	content = xmlNodeGetContent (xml);
 	*i = strtol ((char *)content, &tail, 10);
-	xmlFree (content);
 
-	if (*tail != '\0')
+	if (*tail != '\0') {
+		xmlFree (content);
 		return FALSE;
-	else
+	} else {
+		xmlFree (content);
 		return TRUE;
+	}
 }
 
 gboolean
@@ -277,12 +279,14 @@ soup_xmlrpc_value_get_double (SoupXmlrpc
 	/* FIXME this should be exactly one text node */
 	content = xmlNodeGetContent (xml);
 	*b = g_ascii_strtod ((char *)content, &tail);
-	xmlFree (content);
 
-	if (*tail != '\0')
+	if (*tail != '\0') {
+		xmlFree (content);
 		return FALSE;
-	else
+	} else {
+		xmlFree (content);
 		return TRUE;
+	}
 }
 
 gboolean
@@ -303,10 +307,11 @@ soup_xmlrpc_value_get_boolean (SoupXmlrp
 
 	content = xmlNodeGetContent (xml);
 	i = strtol ((char *)content, &tail, 10);
-	xmlFree (content);
 
 	if (*tail != '\0')
 		return FALSE;
+	
+	xmlFree (content);
 
 	if (i != 0 && i != 1)
 		return FALSE;
