--- orig/src/jni/org_gnu_gtk_TreeIter.c
+++ mod/src/jni/org_gnu_gtk_TreeIter.c
@@ -72,7 +72,7 @@
 {
     GtkTreeModel *model_g = (GtkTreeModel*)getPointerFromHandle(env, model);
     GtkTreeIter *child_g = (GtkTreeIter*)getPointerFromHandle(env, child);
-    GtkTreeIter *iter_g = (GtkTreeIter*)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter*)g_slice_alloc(sizeof(GtkTreeIter));
     gboolean value = gtk_tree_model_iter_parent(model_g, iter_g, child_g);
     if (TRUE == value)
         return getTreeIter(env, iter_g);
@@ -107,7 +107,7 @@
 {
     GtkTreeModel *model_g = (GtkTreeModel*)getPointerFromHandle(env, model);
     GtkTreeIter *parent_g = (GtkTreeIter*)getPointerFromHandle(env, parent);
-    GtkTreeIter* iter = (GtkTreeIter*)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter* iter = (GtkTreeIter*)g_slice_alloc(sizeof(GtkTreeIter));
     gboolean value = gtk_tree_model_iter_children(model_g, iter, parent_g);
     if (TRUE == value)
         return getTreeIter(env, iter);
@@ -151,7 +151,7 @@
 {
     GtkTreeModel *model_g = (GtkTreeModel*)getPointerFromHandle(env, model);
     GtkTreeIter *parent_g = (GtkTreeIter*)getPointerFromHandle(env, parent);
-    GtkTreeIter* iter = (GtkTreeIter*)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter* iter = (GtkTreeIter*)g_slice_alloc(sizeof(GtkTreeIter));
     gboolean value = gtk_tree_model_iter_nth_child(model_g, iter, parent_g, (gint) n);
     if (TRUE == value)
         return getTreeIter(env, iter);
@@ -169,7 +169,7 @@
 {
     GtkTreeModel *model_g = (GtkTreeModel*)getPointerFromHandle(env, model);
     GtkTreeIter *child_g = (GtkTreeIter*)getPointerFromHandle(env, child);
-    GtkTreeIter* parent = (GtkTreeIter*)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter* parent = (GtkTreeIter*)g_slice_alloc(sizeof(GtkTreeIter));
     gboolean value = gtk_tree_model_iter_parent(model_g, parent, child_g);
     if (TRUE == value)
         return getTreeIter(env, parent);
--- orig/src/jni/org_gnu_gtk_ListStore.c
+++ mod/src/jni/org_gnu_gtk_ListStore.c
@@ -101,7 +101,7 @@
 cls, jobject listStore, jint position) 
 {
     GtkListStore *listStore_g = (GtkListStore *)getPointerFromHandle(env, listStore);
-    GtkTreeIter *iter_g = (GtkTreeIter *)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter *)g_slice_alloc(sizeof(GtkTreeIter));
     gint32 position_g = (gint32) position;
     gtk_list_store_insert (listStore_g, iter_g, position_g);
     return getTreeIter(env, iter_g);
@@ -115,7 +115,7 @@
 *env, jclass cls, jobject listStore, jobject sibling) 
 {
     GtkListStore *listStore_g = (GtkListStore *)getPointerFromHandle(env, listStore);
-    GtkTreeIter *iter_g = (GtkTreeIter *)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter *)g_slice_alloc(sizeof(GtkTreeIter));
     GtkTreeIter *sibling_g = (GtkTreeIter *)getPointerFromHandle(env, sibling);
     gtk_list_store_insert_before (listStore_g, iter_g, sibling_g);
     return getTreeIter(env, iter_g);
@@ -129,7 +129,7 @@
 jclass cls, jobject listStore, jobject sibling) 
 {
     GtkListStore *listStore_g = (GtkListStore *)getPointerFromHandle(env, listStore);
-    GtkTreeIter *iter_g = (GtkTreeIter *)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter *)g_slice_alloc(sizeof(GtkTreeIter));
     GtkTreeIter *sibling_g = (GtkTreeIter *)getPointerFromHandle(env, sibling);
     gtk_list_store_insert_after (listStore_g, iter_g, sibling_g);
     return getTreeIter(env, iter_g);
@@ -143,7 +143,7 @@
 jclass cls, jobject listStore) 
 {
     GtkListStore *listStore_g = (GtkListStore *)getPointerFromHandle(env, listStore);
-    GtkTreeIter *iter_g = (GtkTreeIter *)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter *)g_slice_alloc(sizeof(GtkTreeIter));
     gtk_list_store_prepend (listStore_g, iter_g);
     return getTreeIter(env, iter_g);
 }
@@ -156,7 +156,7 @@
 cls, jobject listStore) 
 {
     GtkListStore *listStore_g = (GtkListStore *)getPointerFromHandle(env, listStore);
-    GtkTreeIter *iter_g = (GtkTreeIter *)g_malloc(sizeof(GtkTreeIter));
+    GtkTreeIter *iter_g = (GtkTreeIter *)g_slice_alloc(sizeof(GtkTreeIter));
     gtk_list_store_append (listStore_g, iter_g);
     return getTreeIter(env, iter_g);
 }
