diff --git a/src/box/memtx_tree.cc b/src/box/memtx_tree.cc
index cc418738db24fd309b50576c272650b80c01a941..2046b6d345c33399f2cd951b3b3359200e2129d1 100644
--- a/src/box/memtx_tree.cc
+++ b/src/box/memtx_tree.cc
@@ -52,7 +52,7 @@ tree_index_compare(const tuple *a, const tuple *b, struct key_def *key_def)
 	return r;
 }
 int
-tree_index_compare_key(const tuple *a, const key_data *key_data,
+tree_index_compare_key(const tuple *a, const struct key_data *key_data,
 		       struct key_def *key_def)
 {
 	return tuple_compare_with_key(a, key_data->key, key_data->part_count,
@@ -238,9 +238,9 @@ MemtxTree::replace(struct tuple *old_tuple, struct tuple *new_tuple,
 		struct tuple *dup_tuple = NULL;
 
 		/* Try to optimistically replace the new_tuple. */
-		bool tree_res =
+		int tree_res =
 		bps_tree_index_insert(&tree, new_tuple, &dup_tuple);
-		if (!tree_res) {
+		if (tree_res) {
 			tnt_raise(ClientError, ER_MEMORY_ISSUE,
 				  BPS_TREE_EXTENT_SIZE, "MemtxTree", "replace");
 		}
diff --git a/src/lib/salad/bps_tree.h b/src/lib/salad/bps_tree.h
index 18d127f032cc9d69421a679ea5ef28eca1e9d944..f065bbfd863681d512d2bcb4609d0ed5d28487df 100644
--- a/src/lib/salad/bps_tree.h
+++ b/src/lib/salad/bps_tree.h
@@ -135,10 +135,10 @@
  * // base:
  * void bps_tree_create(tree, arg, extent_alloc_func, extent_free_func);
  * void bps_tree_destroy(tree);
- * bool bps_tree_build(tree, sorted_array, array_size);
+ * int bps_tree_build(tree, sorted_array, array_size);
  * bps_tree_elem_t *bps_tree_find(tree, key);
- * bool bps_tree_insert(tree, new_elem, replaced_elem);
- * bool bps_tree_delete(tree, elem);
+ * int bps_tree_insert(tree, new_elem, replaced_elem);
+ * int bps_tree_delete(tree, elem);
  * size_t bps_tree_size(tree);
  * size_t bps_tree_mem_used(tree);
  * bps_tree_elem_t *bps_tree_random(tree, rnd);
@@ -156,7 +156,7 @@
  * bps_tree_elem_t *bps_tree_itr_get_elem(tree, itr);
  * bool bps_tree_itr_next(tree, itr);
  * bool bps_tree_itr_prev(tree, itr);
- * bool bps_tree_itr_freeze(tree, itr);
+ * int bps_tree_itr_freeze(tree, itr);
  * void bps_tree_itr_destroy(tree, itr);
  */
 /* }}} */
@@ -560,9 +560,9 @@ bps_tree_create(struct bps_tree *tree, bps_tree_arg_t arg,
  * @param tree - pointer to a tree
  * @param sorted_array - pointer to the sorted array
  * @param array_size - size of the array (count of elements)
- * @return true on success, false on memory error
+ * @return 0 on success, -1 on memory error
  */
-bool
+int
 bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 	       size_t array_size);
 
@@ -592,19 +592,19 @@ bps_tree_find(const struct bps_tree *tree, bps_tree_key_t key);
  * @param tree - pointer to a tree
  * @param new_elem - inserting or replacing element
  * @replaced - optional pointer for a replaces element
- * @return - true on success or false if memory allocation failed for insert
+ * @return - 0 on success or -1 if memory allocation failed for insert
  */
-bool
+int
 bps_tree_insert(struct bps_tree *tree, bps_tree_elem_t new_elem,
-			   bps_tree_elem_t *replaced);
+		bps_tree_elem_t *replaced);
 
 /**
  * @brief Delete an element from a tree.
  * @param tree - pointer to a tree
  * @param elem - the element tot delete
- * @return - true on success or false if the element was not found in tree
+ * @return - 0 on success or -1 if the element was not found in tree
  */
-bool
+int
 bps_tree_delete(struct bps_tree *tree, bps_tree_elem_t elem);
 
 /**
@@ -747,9 +747,9 @@ bps_tree_itr_prev(const struct bps_tree *tree, struct bps_tree_iterator *itr);
  * with a bps_tree_itr_destroy call after usage.
  * @param tree - pointer to a tree
  * @param itr - pointer to tree iterator
- * @return - true on success, false if no more version is available in matras
+ * @return - 0 on success, -1 if no more version is available in matras
  */
-bool
+int
 bps_tree_itr_freeze(struct bps_tree *tree, struct bps_tree_iterator *itr);
 
 /**
@@ -992,9 +992,9 @@ bps_tree_create(struct bps_tree *tree, bps_tree_arg_t arg,
  * @param tree - pointer to a tree
  * @param sorted_array - pointer to the sorted array
  * @param array_size - size of the array (count of elements)
- * @return true on success, false on memory error
+ * @return 0 on success, -1 on memory error
  */
-inline bool
+inline int
 bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 	       size_t array_size)
 {
@@ -1003,7 +1003,7 @@ bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 	assert(tree->garbage_head_id == (bps_tree_block_id_t)(-1));
 	assert(tree->matras.block_counts[0] == 0);
 	if (array_size == 0)
-		return true;
+		return 0;
 	bps_tree_block_id_t leaf_count = (array_size +
 		BPS_TREE_MAX_COUNT_IN_LEAF - 1) / BPS_TREE_MAX_COUNT_IN_LEAF;
 
@@ -1042,7 +1042,7 @@ bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 			matras_alloc(&tree->matras, &id);
 		if (!new_leaf) {
 			matras_reset(&tree->matras);
-			return false;
+			return -1;
 		}
 		if (first_leaf_id == (bps_tree_block_id_t)-1)
 			first_leaf_id = id;
@@ -1066,7 +1066,7 @@ bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 					matras_alloc(&tree->matras, &new_id);
 				if (!parents[i]) {
 					matras_reset(&tree->matras);
-					return false;
+					return -1;
 				}
 				parents[i]->header.type = BPS_TREE_BT_INNER;
 				parents[i]->header.size = 0;
@@ -1124,7 +1124,7 @@ bps_tree_build(struct bps_tree *tree, bps_tree_elem_t *sorted_array,
 	} else {
 		tree->root_id = root_if_inner_id;
 	}
-	return true;
+	return 0;
 }
 
 /**
@@ -1680,13 +1680,14 @@ bps_tree_itr_prev(const struct bps_tree *tree, struct bps_tree_iterator *itr)
  * with a bps_tree_itr_destroy call after usage.
  * @param tree - pointer to a tree
  * @param itr - pointer to tree iterator
+ * @return - 0 on success, -1 if no more version is available in matras
  */
-inline bool
+inline int
 bps_tree_itr_freeze(struct bps_tree *tree, struct bps_tree_iterator *itr)
 {
 	assert(itr->matras_version == 0);
-	itr->matras_version = matras_new_version(&tree->matras);
-	return itr->matras_version != 0;
+	itr->matras_version = matras_create_read_view(&tree->matras);
+	return itr->matras_version > 0 ? 0 : -1;
 }
 
 /**
@@ -1699,7 +1700,7 @@ inline void
 bps_tree_itr_destroy(struct bps_tree *tree, struct bps_tree_iterator *itr)
 {
 	if (itr->matras_version) {
-		matras_delete_version(&tree->matras, itr->matras_version);
+		matras_destroy_read_view(&tree->matras, itr->matras_version);
 		itr->matras_version = 0;
 	}
 }
@@ -1754,7 +1755,7 @@ bps_tree_garbage_push(struct bps_tree *tree, struct bps_block *block,
 }
 
 /**
- * @brief Reclaim a block fomr the garbage for reuse
+ * @brief Reclaim a block from the garbage for reuse
  */
 static inline struct bps_block *
 bps_tree_garbage_pop(struct bps_tree *tree, bps_tree_block_id_t *id)
@@ -1843,7 +1844,7 @@ bps_tree_reserve_blocks(struct bps_tree *tree, bps_tree_block_id_t count)
 /**
  * @brief Insert first element to and empty tree.
  */
-static inline bool
+static inline int
 bps_tree_insert_first_elem(struct bps_tree *tree, bps_tree_elem_t new_elem)
 {
 	assert(tree->depth == 0);
@@ -1852,7 +1853,7 @@ bps_tree_insert_first_elem(struct bps_tree *tree, bps_tree_elem_t new_elem)
 	tree->max_elem = new_elem;
 	struct bps_leaf *leaf = bps_tree_create_leaf(tree, &tree->root_id);
 	if (!leaf)
-		return false;
+		return -1;
 	leaf->header.size = 1;
 	leaf->elems[0] = new_elem;
 	tree->first_id = tree->root_id;
@@ -1861,7 +1862,7 @@ bps_tree_insert_first_elem(struct bps_tree *tree, bps_tree_elem_t new_elem)
 	leaf->next_id = (bps_tree_block_id_t)(-1);
 	tree->depth = 1;
 	tree->size = 1;
-	return true;
+	return 0;
 }
 
 /**
@@ -2900,7 +2901,7 @@ bps_tree_prepare_new_ext_inner(bps_inner_path_elem *path_elem,
 /**
  * bps_tree_process_insert_inner declaration. See definition for details.
  */
-static bool
+static int
 bps_tree_process_insert_inner(struct bps_tree *tree,
 			      bps_inner_path_elem *inner_path_elem,
 			      bps_tree_block_id_t block_id, bps_tree_pos_t pos,
@@ -2910,7 +2911,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
  * Basic inserted into leaf, dealing with spliting, merging and moving data
  * to neighbour blocks if necessary
  */
-static inline bool
+static inline int
 bps_tree_process_insert_leaf(struct bps_tree *tree,
 			     struct bps_leaf_path_elem *leaf_path_elem,
 			     bps_tree_elem_t new_elem)
@@ -2918,7 +2919,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 	if (bps_tree_leaf_free_size(leaf_path_elem->block)) {
 		bps_tree_insert_into_leaf(tree, leaf_path_elem, new_elem);
 		BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x0);
-		return true;
+		return 0;
 	}
 	struct bps_leaf_path_elem left_ext = {0, 0, 0, 0, 0, 0},
 			right_ext = {0, 0, 0, 0, 0, 0},
@@ -2941,7 +2942,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					&left_ext, leaf_path_elem,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x1);
-			return true;
+			return 0;
 		} else if (bps_tree_leaf_free_size(right_ext.block) > 0) {
 			bps_tree_pos_t move_count = 1 +
 				bps_tree_leaf_free_size(right_ext.block) / 2;
@@ -2949,7 +2950,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					leaf_path_elem, &right_ext,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x2);
-			return true;
+			return 0;
 		}
 	} else if (has_left_ext) {
 		if (bps_tree_leaf_free_size(left_ext.block) > 0) {
@@ -2959,7 +2960,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					&left_ext, leaf_path_elem,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x3);
-			return true;
+			return 0;
 		}
 		has_left_left_ext = bps_tree_collect_left_path_elem_leaf(tree,
 				&left_ext, &left_left_ext);
@@ -2975,7 +2976,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					&left_ext, leaf_path_elem,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x4);
-			return true;
+			return 0;
 		}
 	} else if (has_right_ext) {
 		if (bps_tree_leaf_free_size(right_ext.block) > 0) {
@@ -2985,7 +2986,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					leaf_path_elem, &right_ext,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x5);
-			return true;
+			return 0;
 		}
 		has_right_right_ext = bps_tree_collect_right_ext_leaf(tree,
 				&right_ext, &right_right_ext);
@@ -3001,12 +3002,12 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 					leaf_path_elem, &right_ext,
 					move_count, new_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0x6);
-			return true;
+			return 0;
 		}
 	}
 
 	if (!bps_tree_reserve_blocks(tree, tree->depth + 1)) {
-		return false;
+		return -1;
 	}
 	bps_tree_block_id_t new_block_id = (bps_tree_block_id_t)(-1);
 	struct bps_leaf *new_leaf = bps_tree_create_leaf(tree, &new_block_id);
@@ -3223,7 +3224,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
 		tree->depth++;
 
 		BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0xC);
-		return true;
+		return 0;
 	}
 	assert(leaf_path_elem->parent);
 	BPS_TREE_BRANCH_TRACE(tree, insert_leaf, 1 << 0xD);
@@ -3236,7 +3237,7 @@ bps_tree_process_insert_leaf(struct bps_tree *tree,
  * Basic inserted into inner, dealing with spliting, merging and moving data
  * to neighbour blocks if necessary
  */
-static inline bool
+static inline int
 bps_tree_process_insert_inner(struct bps_tree *tree,
 			      bps_inner_path_elem *inner_path_elem,
 			      bps_tree_block_id_t block_id,
@@ -3246,7 +3247,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 		bps_tree_insert_into_inner(tree, inner_path_elem,
 					   block_id, pos, max_elem);
 		BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x0);
-		return true;
+		return 0;
 	}
 	bps_inner_path_elem left_ext = {0, 0, 0, 0, 0, 0},
 		right_ext = {0, 0, 0, 0, 0, 0},
@@ -3269,7 +3270,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					&left_ext, inner_path_elem, move_count,
 					block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x1);
-			return true;
+			return 0;
 		} else if (bps_tree_inner_free_size(right_ext.block) > 0) {
 			bps_tree_pos_t move_count = 1 +
 				bps_tree_inner_free_size(right_ext.block) / 2;
@@ -3277,7 +3278,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					inner_path_elem, &right_ext,
 					move_count, block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x2);
-			return true;
+			return 0;
 		}
 	} else if (has_left_ext) {
 		if (bps_tree_inner_free_size(left_ext.block) > 0) {
@@ -3287,7 +3288,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					&left_ext, inner_path_elem,
 					move_count, block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x3);
-			return true;
+			return 0;
 		}
 		has_left_left_ext = bps_tree_collect_left_path_elem_inner(tree,
 				&left_ext, &left_left_ext);
@@ -3303,7 +3304,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					&left_ext, inner_path_elem, move_count,
 					block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x4);
-			return true;
+			return 0;
 		}
 	} else if (has_right_ext) {
 		if (bps_tree_inner_free_size(right_ext.block) > 0) {
@@ -3313,7 +3314,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					inner_path_elem, &right_ext,
 					move_count, block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x5);
-			return true;
+			return 0;
 		}
 		has_right_right_ext = bps_tree_collect_right_ext_inner(tree,
 					&right_ext, &right_right_ext);
@@ -3329,7 +3330,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 					inner_path_elem, &right_ext,
 					move_count, block_id, pos, max_elem);
 			BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0x6);
-			return true;
+			return 0;
 		}
 	}
 	bps_tree_block_id_t new_block_id = (bps_tree_block_id_t)(-1);
@@ -3538,7 +3539,7 @@ bps_tree_process_insert_inner(struct bps_tree *tree,
 		tree->max_elem = new_max_elem;
 		tree->depth++;
 		BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0xC);
-		return true;
+		return 0;
 	}
 	assert(inner_path_elem->parent);
 	BPS_TREE_BRANCH_TRACE(tree, insert_inner, 1 << 0xD);
@@ -3928,9 +3929,9 @@ bps_tree_process_delete_inner(struct bps_tree *tree,
  * @param tree - pointer to a tree
  * @param new_elem - inserting or replacing element
  * @replaced - optional pointer for a replaces element
- * @return - true on success or false if memory allocation failed for insert
+ * @return - 0 on success or -1 if memory allocation failed for insert
  */
-inline bool
+inline int
 bps_tree_insert(struct bps_tree *tree, bps_tree_elem_t new_elem,
 			   bps_tree_elem_t *replaced)
 {
@@ -3944,7 +3945,7 @@ bps_tree_insert(struct bps_tree *tree, bps_tree_elem_t new_elem,
 	if (exact) {
 		bps_tree_process_replace(tree, &leaf_path_elem, new_elem,
 					 replaced);
-		return true;
+		return 0;
 	} else {
 		return bps_tree_process_insert_leaf(tree, &leaf_path_elem,
 						    new_elem);
@@ -3957,21 +3958,21 @@ bps_tree_insert(struct bps_tree *tree, bps_tree_elem_t new_elem,
  * @param elem - the element tot delete
  * @return - true on success or false if the element was not found in tree
  */
-inline bool
+inline int
 bps_tree_delete(struct bps_tree *tree, bps_tree_elem_t elem)
 {
 	if (tree->root_id == (bps_tree_block_id_t)(-1))
-		return false;
+		return -1;
 	bps_inner_path_elem path[BPS_TREE_MAX_DEPTH];
 	struct bps_leaf_path_elem leaf_path_elem;
 	bool exact;
 	bps_tree_collect_path(tree, elem, path, &leaf_path_elem, &exact);
 
 	if (!exact)
-		return false;
+		return -1;
 
 	bps_tree_process_delete_leaf(tree, &leaf_path_elem);
-	return true;
+	return 0;
 }
 
 /**
diff --git a/src/lib/small/matras.c b/src/lib/small/matras.c
index fbb3ee2a64911e68ce52d7f89d3b6884af426271..3bf2e21c2cf3d4cbe7b3438c0fae2237a1026914 100644
--- a/src/lib/small/matras.c
+++ b/src/lib/small/matras.c
@@ -79,7 +79,7 @@ matras_destroy(struct matras *m)
 {
 	while(m->ver_occ_mask != 1) {
 		matras_id_t ver = __builtin_ctzl(m->ver_occ_mask ^ 1);
-		matras_delete_version(m, ver);
+		matras_destroy_read_view(m, ver);
 	}
 	if (m->block_counts[0]) {
 		struct matras_record *extent1 = m->roots[0].ptr;
@@ -314,10 +314,10 @@ matras_extent_count(const struct matras *m)
 
 /*
  * Create new version of matras memory.
- * Return 0 if all version IDs are occupied.
+ * Return -1 if all version IDs are occupied.
  */
 matras_id_t
-matras_new_version(struct matras *m)
+matras_create_read_view(struct matras *m)
 {
 	matras_id_t ver_id;
 #ifdef WIN32
@@ -331,7 +331,7 @@ matras_new_version(struct matras *m)
 #endif
 	assert(ver_id > 0);
 	if (ver_id >= MATRAS_VERSION_COUNT)
-		return 0;
+		return -1;
 	m->ver_occ_mask |= ((matras_version_tag_t)1) << ver_id;
 	m->roots[ver_id] = m->roots[0];
 	m->block_counts[ver_id] = m->block_counts[0];
@@ -342,7 +342,7 @@ matras_new_version(struct matras *m)
  * Delete memory version by specified ID.
  */
 void
-matras_delete_version(struct matras *m, matras_id_t ver_id)
+matras_destroy_read_view(struct matras *m, matras_id_t ver_id)
 {
 	matras_version_tag_t me = ((matras_version_tag_t)1) << ver_id;
 	if (m->block_counts[ver_id]) {
@@ -560,7 +560,7 @@ matras_touch(struct matras *m, matras_id_t id)
 
 /*
  * Debug check that ensures internal consistency.
- * Must return 0. If i returns not 0, smth is terribly wrong.
+ * Must return 0. If it returns not 0, smth is terribly wrong.
  */
 matras_version_tag_t
 matras_debug_selfcheck(const struct matras *m)
diff --git a/src/lib/small/matras.h b/src/lib/small/matras.h
index e36d517d24fbd3d7a98985340b4c7cd3f6712a8d..ae1aaf1c4c099307efe44e291f31f68824ee9b57 100644
--- a/src/lib/small/matras.h
+++ b/src/lib/small/matras.h
@@ -284,16 +284,16 @@ matras_extent_count(const struct matras *m);
 
 /*
  * Create new version of matras memory.
- * Return 0 if all version IDs are occupied.
+ * Return -1 if all version IDs are occupied.
  */
 matras_id_t
-matras_new_version(struct matras *m);
+matras_create_read_view(struct matras *m);
 
 /*
  * Delete memory version by specified ID.
  */
 void
-matras_delete_version(struct matras *m, matras_id_t ver_id);
+matras_destroy_read_view(struct matras *m, matras_id_t ver_id);
 
 /*
  * Notify matras that memory at given ID will be changed.
@@ -305,7 +305,7 @@ matras_touch(struct matras *m, matras_id_t id);
 
 /*
  * Debug check that ensures internal consistency.
- * Must return 0. If i returns not 0, smth is terribly wrong.
+ * Must return 0. If it returns not 0, smth is terribly wrong.
  */
 matras_version_tag_t
 matras_debug_selfcheck(const struct matras *m);
diff --git a/test/unit/bps_tree.cc b/test/unit/bps_tree.cc
index c73eca0ad381f208b6a51e9da4c208e82a390a3e..1a3e96dc38cac256aeab86b0ab37ebed07854b85 100644
--- a/test/unit/bps_tree.cc
+++ b/test/unit/bps_tree.cc
@@ -521,7 +521,7 @@ loading_test()
 	for (type_t i = 0; i <= test_count; i++) {
 		bps_tree_test_create(&tree, 0, extent_alloc, extent_free);
 
-		if (!bps_tree_test_build(&tree, arr, i))
+		if (bps_tree_test_build(&tree, arr, i))
 			fail("building failed", "true");
 
 		if (bps_tree_test_debug_check(&tree))
diff --git a/test/unit/bps_tree_itr.cc b/test/unit/bps_tree_itr.cc
index d696edd6cf63acd397a9db3ea9741da922b9a49e..3a464235bdd60baf517e0b37b1deea20cc7216f3 100644
--- a/test/unit/bps_tree_itr.cc
+++ b/test/unit/bps_tree_itr.cc
@@ -257,8 +257,8 @@ itr_invalidate_check()
 			elem_t e;
 			e.first = i * test_size * 2;
 			e.second = i * test_size * 2;
-			bool res = bps_tree_test_delete(&tree, e);
-			assert(res);
+			int res = bps_tree_test_delete(&tree, e);
+			assert(res == 0);
 		}
 		for (long i = 0; i < test_size; i++) {
 			do {
@@ -301,8 +301,8 @@ itr_invalidate_check()
 			elem_t e;
 			e.first = ins_pos * test_size * 2 + i + 1;
 			e.second = e.first;
-			bool res = bps_tree_test_insert(&tree, e, 0);
-			assert(res);
+			int res = bps_tree_test_insert(&tree, e, 0);
+			assert(res == 0);
 		}
 		for (long i = 0; i < test_size; i++) {
 			do {
@@ -356,15 +356,15 @@ itr_invalidate_check()
 			elem_t e;
 			e.first = i * test_size * 2;
 			e.second = i * test_size * 2;
-			bool res = bps_tree_test_delete(&tree, e);
-			assert(res);
+			int res = bps_tree_test_delete(&tree, e);
+			assert(res == 0);
 		}
 		for (long i = 0; i < ins_cnt; i++) {
 			elem_t e;
 			e.first = ins_pos * test_size * 2 + i + 1;
 			e.second = e.first;
-			bool res = bps_tree_test_insert(&tree, e, 0);
-			assert(res);
+			int res = bps_tree_test_insert(&tree, e, 0);
+			assert(res == 0);
 		}
 		for (long i = 0; i < test_size; i++) {
 			do {
diff --git a/test/unit/matras.cc b/test/unit/matras.cc
index d7d6279adb06c6149b1bdfcbe560722639b4a6a4..6907ae7cbbc1652af5ae86605a0912e8d659d2d0 100644
--- a/test/unit/matras.cc
+++ b/test/unit/matras.cc
@@ -189,7 +189,8 @@ matras_vers_test()
 					add_ver = rand() % 2 == 0;
 				if (add_ver) {
 					cur_num_or_ver++;
-					int new_ver = matras_new_version(&local);
+					int new_ver = matras_create_read_view(&local);
+					assert(new_ver > 0);
 					use_mask |= (1 << new_ver);
 					comps[new_ver] = comps[0];
 				} else {
@@ -198,7 +199,7 @@ matras_vers_test()
 					do {
 						del_ver = 1 + rand() % (MATRAS_VERSION_COUNT - 1);
 					} while ((use_mask & (1 << del_ver)) == 0);
-					matras_delete_version(&local, del_ver);
+					matras_destroy_read_view(&local, del_ver);
 					comps[del_ver].clear();
 					use_mask &= ~(1 << del_ver);
 				}