diff --git a/src/btree/bt_delete.c b/src/btree/bt_delete.c
index a2f9afaf4..a588cb713 100644
--- a/src/btree/bt_delete.c
+++ b/src/btree/bt_delete.c
@@ -156,6 +156,7 @@ __wt_delete_page(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp)
 
 	/* Publish the page to its new state, ensuring visibility. */
 	WT_PUBLISH(ref->state, WT_REF_DELETED);
+	__wt_verbose(session, WT_VERB_SPLIT, "%p: fast-delete", (void *)ref);
 	return (0);
 
 err:	__wt_free(session, ref->page_del);
@@ -463,6 +464,7 @@ __wt_delete_page_instantiate(WT_SESSION_IMPL *session, WT_REF *ref)
 			}
 	}
 
+	__wt_verbose(session, WT_VERB_SPLIT, "%p: fast-delete-instantiate", (void *)ref);
 	__wt_cache_page_inmem_incr(session, page, size);
 
 	return (0);
@@ -475,5 +477,6 @@ err:	/*
 	 */
 	if (page_del != NULL)
 		__wt_free(session, page_del->update_list);
+	WT_RET(__wt_msg(session, "Failed instantiating a deleted page: %d\n", ret));
 	return (ret);
 }
diff --git a/src/btree/bt_read.c b/src/btree/bt_read.c
index c8368624d..94281c2ad 100644
--- a/src/btree/bt_read.c
+++ b/src/btree/bt_read.c
@@ -541,6 +541,7 @@ err:	/*
 	WT_PUBLISH(ref->state, previous_state);
 
 	__wt_buf_free(session, &tmp);
+	WT_RET(__wt_msg(session, "Error during __page_read %d\n", ret));
 
 	return (ret);
 }
diff --git a/src/include/api.h b/src/include/api.h
index aabb19c86..5ee6e7f93 100644
--- a/src/include/api.h
+++ b/src/include/api.h
@@ -119,6 +119,7 @@
 		    !F_ISSET(&(s)->txn, WT_TXN_ERROR))			\
 			(ret) = __wt_txn_commit((s), NULL);		\
 		else {							\
+			WT_ASSERT((s), ret != WT_ROLLBACK);		\
 			if (retry)					\
 				WT_TRET(__wt_session_copy_values(s));	\
 			WT_TRET(__wt_txn_rollback((s), NULL));		\
diff --git a/src/session/session_api.c b/src/session/session_api.c
index 0becbe0b5..9ce2ecbe5 100644
--- a/src/session/session_api.c
+++ b/src/session/session_api.c
@@ -1481,6 +1481,9 @@ __session_truncate(WT_SESSION *wt_session,
 		    "the truncate method should be passed either a URI or "
 		    "start/stop cursors, but not both");
 
+	WT_ERR(__wt_msg(session, "Calling truncate on %s with %s start and %s end\n",
+	    uri, start == NULL ? "null" : "non null",
+	    stop == NULL ? "null" : "non null"));
 	if (uri != NULL) {
 		/* Disallow objects in the WiredTiger name space. */
 		WT_ERR(__wt_str_name_check(session, uri));
diff --git a/test/format/ops.c b/test/format/ops.c
index b3f5fd51c..2a4b36666 100644
--- a/test/format/ops.c
+++ b/test/format/ops.c
@@ -34,6 +34,7 @@ static int   col_remove(TINFO *, WT_CURSOR *, bool);
 static int   col_reserve(TINFO *, WT_CURSOR *, bool);
 static int   col_truncate(TINFO *, WT_CURSOR *);
 static int   col_update(TINFO *, WT_CURSOR *, bool);
+static int   compare_db(TINFO *, WT_CURSOR *);
 static int   nextprev(TINFO *, WT_CURSOR *, bool);
 static WT_THREAD_RET ops(void *);
 static int   read_row(TINFO *, WT_CURSOR *);
@@ -852,7 +853,7 @@ ops(void *arg)
 
 				/* Pick the next truncate operation. */
 				truncate_op +=
-				    mmrand(&tinfo->rnd, 20000, 100000);
+				    mmrand(&tinfo->rnd, 2000, 10000);
 			} else if (i < g.c_delete_pct)
 				op = REMOVE;
 			else if (i < g.c_delete_pct + g.c_insert_pct)
@@ -1142,6 +1143,10 @@ rollback:		rollback_transaction(tinfo, session);
 		snap = NULL;
 	}
 
+	/* Check for data consistency */
+	if (1)
+		testutil_check(compare_db(tinfo, cursor));
+
 	if (session != NULL)
 		testutil_check(session->close(session, NULL));
 
@@ -1299,8 +1304,8 @@ read_row_worker(
 	/* Compare the two. */
 	if (value->size != bdb_value.size ||
 	    memcmp(value->data, bdb_value.data, value->size) != 0) {
-		fprintf(stderr,
-		    "read_row: value mismatch %" PRIu64 ":\n", keyno);
+		(void)g.wt_api->msg_printf(g.wt_api,
+		    session, "read_row: value mismatch %" PRIu64 ":\n", keyno);
 		print_item("bdb", &bdb_value);
 		print_item(" wt", value);
 		testutil_die(0, NULL);
@@ -1323,6 +1328,46 @@ read_row(TINFO *tinfo, WT_CURSOR *cursor)
 }
 
 /*
+ * compare_db --
+ *	Compare the content of BerkeleyDB and WiredTiger databases.
+ */
+static int
+compare_db(TINFO *tinfo, WT_CURSOR *wt_cursor)
+{
+	WT_ITEM wt_key;
+	int ret, step_count = 0;
+
+	if (!SINGLETHREADED)
+		return (0);
+
+	/*
+	 * Move to the start of the tree, and setup cursors to do comparison
+	 * of the content between WiredTiger and BerkeleyDB.
+	 */
+	testutil_check(wt_cursor->reset(wt_cursor));
+	testutil_check(wt_cursor->next(wt_cursor));
+	testutil_check(wt_cursor->get_key(wt_cursor, &wt_key));
+	testutil_check(__wt_buf_set((WT_SESSION_IMPL *)
+	    wt_cursor->session, tinfo->key, wt_key.data, wt_key.size));
+	tinfo->keyno = strtoul((char*)tinfo->key->data, NULL, 10);
+	(void)g.wt_api->msg_printf(g.wt_api,
+	    wt_cursor->session, "Setting the key number to: %" PRIu64 "\n", tinfo->keyno);
+	/* Do a read operation so the last key is setup. */
+	ret = read_row(tinfo, wt_cursor);
+	if (ret == WT_NOTFOUND) {
+		(void)g.wt_api->msg_printf(g.wt_api,
+		    wt_cursor->session, "comparison failed with WT_NOTFOUND\n");
+		ret = 0;
+	}
+	testutil_check(ret);
+	while (nextprev(tinfo, wt_cursor, 1) == 0) { ++step_count; }
+
+	(void)g.wt_api->msg_printf(g.wt_api,
+	    wt_cursor->session, "format compare_db check step count: %d\n", step_count);
+	return (0);
+}
+
+/*
  * nextprev --
  *	Read and verify the next/prev element in a row- or column-store file.
  */
@@ -1716,7 +1761,7 @@ row_truncate(TINFO *tinfo, WT_CURSOR *cursor)
 		testutil_check(
 		    session->open_cursor(session, g.uri, NULL, NULL, &c2));
 		key_gen(tinfo->lastkey, tinfo->last);
-		cursor->set_key(c2, tinfo->lastkey);
+		c2->set_key(c2, tinfo->lastkey);
 
 		ret = session->truncate(session, NULL, cursor, c2, NULL);
 		testutil_check(c2->close(c2));
@@ -1732,8 +1777,11 @@ row_truncate(TINFO *tinfo, WT_CURSOR *cursor)
 		    tinfo->keyno, tinfo->last);
 
 #ifdef HAVE_BERKELEY_DB
-	if (SINGLETHREADED)
+	if (SINGLETHREADED) {
 		bdb_truncate(tinfo->keyno, tinfo->last);
+		/* Compare the content against BDB after truncate *
+		testutil_check(compare_db(tinfo, cursor));*/
+	}
 #endif
 	return (0);
 }
diff --git a/test/format/salvage.c b/test/format/salvage.c
index c631ea599..02a79457f 100644
--- a/test/format/salvage.c
+++ b/test/format/salvage.c
@@ -42,6 +42,8 @@ salvage(void)
 	track("salvage", 0ULL, NULL);
 
 	testutil_check(conn->open_session(conn, NULL, NULL, &session));
+	(void)g.wt_api->msg_printf(g.wt_api,
+	    session, "Running salvage on WiredTiger database\n");
 	testutil_check(session->salvage(session, g.uri, "force=true"));
 	testutil_check(session->close(session, NULL));
 }
