diff --git a/axiom/test/xpath/test_xpath_streaming.cc b/axiom/test/xpath/test_xpath_streaming.cc
index abf101c..41ee48e 100644
--- a/axiom/test/xpath/test_xpath_streaming.cc
+++ b/axiom/test/xpath/test_xpath_streaming.cc
@@ -101,6 +101,7 @@
 
     test_tree_str = axiom_node_to_string(test_tree, m_env);
     printf("\nTesting XML\n-----------\n\"%s\"\n\n\n", test_tree_str);
+    AXIS2_FREE(m_env->allocator, test_tree_str);
 
     axiom_node_free_tree(test_tree, m_env);
 
@@ -231,6 +232,7 @@
     if(!context)
     {
         printf("Could not initialise XPath context\n");
+        axiom_node_free_tree(test_tree, env);
         return;
     }
 
@@ -246,6 +248,9 @@
         printf("Compilation error.");
         printf("Please check the systax of the XPath query.\n");
 
+        axiom_xpath_free_context(env, context);
+        axiom_node_free_tree(test_tree, env);
+
         return;
     }
 
@@ -258,7 +263,8 @@
         compare_result("");
         printf("An error occured while evaluating the expression.\n");
 
-        axiom_xpath_free_expression(env, expr);
+        axiom_xpath_free_context(env, context);
+        axiom_node_free_tree(test_tree, env);
 
         return;
     }
@@ -268,7 +274,9 @@
         compare_result("");
         printf("Streaming not supported.\n");
 
-        axiom_xpath_free_expression(env, expr);
+        axiom_xpath_free_result(env, result);
+        axiom_xpath_free_context(env, context);
+        axiom_node_free_tree(test_tree, env);
 
         return;
     }
@@ -280,10 +288,9 @@
         axiom_xpath_free_result(env, result);
     }
 
-    if (expr)
-    {
-        axiom_xpath_free_expression(env, expr);
-    }
+    axiom_xpath_free_context(env, context);
+    axiom_node_free_tree(test_tree, env);
+
 }
 
 int compare_result(axis2_char_t *rs)
@@ -461,5 +468,7 @@
 
     while (axiom_document_build_next(document, env));
 
+    axiom_stax_builder_free_self(builder, env);
+
     return root;
 }
