{
        struct tdb_header hdr;
 
-       if (tdb->methods->tdb_read(tdb, 0, &hdr, sizeof(hdr), DOCONV()) == -1)
+       if (tdb->methods->tdb_read(tdb, 0, &hdr, sizeof(hdr), 0) == -1)
                return false;
        if (strcmp(hdr.magic_food, TDB_MAGIC_FOOD) != 0)
                goto corrupt;
 
        struct tdb_context *tdb;
        TDB_DATA key, data;
 
-       plan_tests(9);
+       plan_tests(13);
        tdb = tdb_open_ex("run-check.tdb", 1, TDB_CLEAR_IF_FIRST,
                          O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        ok1(tdb_error(tdb) == TDB_ERR_CORRUPT);
        tdb_close(tdb);
 
+       /* Big and little endian should work! */
+       tdb = tdb_open_ex("test/tdb-le.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
+       ok1(tdb);
+       ok1(tdb_check(tdb, NULL, NULL) == 0);
+       tdb_close(tdb);
+
+       tdb = tdb_open_ex("test/tdb-be.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
+       ok1(tdb);
+       ok1(tdb_check(tdb, NULL, NULL) == 0);
+       tdb_close(tdb);
+
        return exit_status();
 }