diff --git a/bindings/java/jni/Makefile.am b/bindings/java/jni/Makefile.am
index 175b5c3acf7da750cf3209ea8dd7bf68d32d4147..b85e68a191a1a657a69ebb63b14dc2184e1c2ecb 100644
--- a/bindings/java/jni/Makefile.am
+++ b/bindings/java/jni/Makefile.am
@@ -1,4 +1,5 @@
-AM_CPPFLAGS = -I../../.. -I$(srcdir)/../../.. $(JNI_CPPFLAGS)
+AM_CPPFLAGS = -I../../.. -I$(srcdir)/../../.. $(JNI_CPPFLAGS) 
+AM_CXXFLAGS += -Wno-unused-command-line-argument -Wno-overloaded-virtual
 EXTRA_DIST = .indent.pro 
 
 lib_LTLIBRARIES = libtsk_jni.la
diff --git a/configure.ac b/configure.ac
index 1a5c6dd6b9eb54ad282d2ed9ae8d012ad511e10e..d05fdf2cdbe8a841ef696e1ac90cc30573b6db23 100644
--- a/configure.ac
+++ b/configure.ac
@@ -386,9 +386,7 @@ AC_CHECK_FUNCS([getline])
 AC_SEARCH_LIBS(regexec, [regex], , AC_MSG_ERROR([missing regex]))
 
 dnl Enable compliation warnings
-dnl TODO: Maybe turn on -Wpedantic after fixing all the other warnings?
-dnl WARNINGS='-Wall -Wextra -Wpedantic'
-WARNINGS='-Wall -Wextra -Wpedantic'
+WARNINGS='-Wall -Wextra -Wno-unused-parameter'
 
 AC_SUBST(AM_CFLAGS, $WARNINGS)
 AC_SUBST(AM_CXXFLAGS, $WARNINGS)
diff --git a/samples/Makefile.am b/samples/Makefile.am
index 9d534772a078c495aee585964b9f5bc9f4d1b66f..7fc68a25afc458a9841b8e8c4376fff5dcfb0b72 100644
--- a/samples/Makefile.am
+++ b/samples/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../tsk/libtsk.la
 AM_LDFLAGS = -static
 EXTRA_DIST = .indent.pro 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 59b508e0dbc490214f7244a49aa7fd22d9206aef..4f522cd821e7cd04ebfc42a70e2da1f3838040d4 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,6 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/..
 AM_CFLAGS += $(PTHREAD_CFLAGS)
-AM_CXXFLAGS += $(PTHREAD_CFLAGS)
+AM_CXXFLAGS += -Wno-unused-command-line-argument $(PTHREAD_CFLAGS)
 LDADD = ../tsk/libtsk.la
 LDFLAGS += -static $(PTHREAD_LIBS)
 EXTRA_DIST = .indent.pro runtests.sh
diff --git a/tools/autotools/Makefile.am b/tools/autotools/Makefile.am
index 0c387d6fc6297fceac540345a74d045d9f8ff3ec..8058968f8be96ddcd593b01bb6dfea43b11840b6 100644
--- a/tools/autotools/Makefile.am
+++ b/tools/autotools/Makefile.am
@@ -1,4 +1,5 @@
-AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. 
+AM_CXXFLAGS += -Wno-overloaded-virtual -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/tools/fiwalk/plugins/Makefile.am b/tools/fiwalk/plugins/Makefile.am
index 54b3460a83cd684c3ebb234e9df00a6e53b4a3af..64513bcebcba06662937bd9422370da94c6bd4af 100644
--- a/tools/fiwalk/plugins/Makefile.am
+++ b/tools/fiwalk/plugins/Makefile.am
@@ -1,3 +1,4 @@
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 bin_PROGRAMS = jpeg_extract 
 jpeg_extract_SOURCES = jpeg_extract.cpp
 
diff --git a/tools/fiwalk/src/Makefile.am b/tools/fiwalk/src/Makefile.am
index cf6af570b97047a25d4229b200a78d84a4a29e1a..dc92ebfc35862dbc8f860dbb5c803ebc93a38788 100644
--- a/tools/fiwalk/src/Makefile.am
+++ b/tools/fiwalk/src/Makefile.am
@@ -1,6 +1,6 @@
 bin_PROGRAMS = fiwalk 
-
 AM_CPPFLAGS = -I../../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../../tsk/libtsk.la
 
 EXTRA_DIST = README_PLUGINS.txt ficonfig.txt \
diff --git a/tools/fstools/Makefile.am b/tools/fstools/Makefile.am
index e2ecdbd98e738c97df6c9f83a17e526969dbe656..cb9a138cac6264969203dd8e0ad542c76cf6314a 100644
--- a/tools/fstools/Makefile.am
+++ b/tools/fstools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro fscheck.cpp
diff --git a/tools/hashtools/Makefile.am b/tools/hashtools/Makefile.am
index 36aa48e6dcf8c3d160f3008252e5454b5ced129e..4241b2aabb2efa74315957f180c2e0e643187005 100644
--- a/tools/hashtools/Makefile.am
+++ b/tools/hashtools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro md5.c sha1.c
diff --git a/tools/imgtools/Makefile.am b/tools/imgtools/Makefile.am
index aebc96688dffdfa7f36fa2e042e533d0aa1daad3..30d3a25d3f46690f1b2fa7ee01e3a91a28b34925 100644
--- a/tools/imgtools/Makefile.am
+++ b/tools/imgtools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/tools/srchtools/Makefile.am b/tools/srchtools/Makefile.am
index 665a6d2b8f8b84cbb920112c5ac693653aca1126..70a9af2bddf41c8d89cd3d584d3ac23b04804b7a 100644
--- a/tools/srchtools/Makefile.am
+++ b/tools/srchtools/Makefile.am
@@ -1,6 +1,8 @@
 bin_PROGRAMS = srch_strings sigfind
 EXTRA_DIST = .indent.pro
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
+AM_CFLAGS += -Wno-unused-command-line-argument
 
 srch_strings_SOURCES = srch_strings.c
 
diff --git a/tools/vstools/Makefile.am b/tools/vstools/Makefile.am
index 13c1d35646f04b292f96befae13138b186a81f31..38475365d8ab97434f15cc226eb7214ed7b79684 100644
--- a/tools/vstools/Makefile.am
+++ b/tools/vstools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/travis_build.sh b/travis_build.sh
index 1ec7fb70e7c124b019a6a8eb97f69a8fe722159c..a767b8534fdea8a82a14a00c8419bc48f12c23f0 100755
--- a/travis_build.sh
+++ b/travis_build.sh
@@ -6,5 +6,5 @@ if test ${TRAVIS_OS_NAME} = "linux"; then
 elif test ${TRAVIS_OS_NAME} = "osx"; then
 	brew install ant	
 fi
-./bootstrap && ./configure --prefix=/usr && make
+./bootstrap && ./configure --prefix=/usr && make > /dev/null
 cd bindings/java/ && ant dist-PostgreSQL
diff --git a/tsk/auto/Makefile.am b/tsk/auto/Makefile.am
index e9171b6f92f097ac97a72819c5dede9115ad1eb1..963dd9829de707cf85cc230cbefadb0dae0f97b4 100755
--- a/tsk/auto/Makefile.am
+++ b/tsk/auto/Makefile.am
@@ -1,6 +1,6 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
-AM_CFLAGS += -Wmultichar -Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo
-AM_CXXFLAGS += -Wmultichar -Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo
+AM_CFLAGS += -Wmultichar -Wsign-promo -Wno-overloaded-virtual
+AM_CXXFLAGS += -Wmultichar -Wsign-promo -Wno-overloaded-virtual
 EXTRA_DIST = .indent.pro
 
 noinst_LTLIBRARIES = libtskauto.la
diff --git a/tsk/auto/auto_db.cpp b/tsk/auto/auto_db.cpp
index 4b28f8e54bc67b7e16688a9e63d138414fd01e01..db5b2edc7596e6a979d8c971a072a9210097903c 100644
--- a/tsk/auto/auto_db.cpp
+++ b/tsk/auto/auto_db.cpp
@@ -40,7 +40,7 @@ TskAutoDb::TskAutoDb(TskDb * a_db, TSK_HDB_INFO * a_NSRLDb, TSK_HDB_INFO * a_kno
     m_curFsId = 0;
     m_curFileId = 0;
     m_curUnallocDirId = 0;
-    m_curDirId = 0;
+    m_curDirAddr = 0;
     m_curDirPath = "";
     m_blkMapFlag = false;
     m_vsFound = false;
@@ -729,13 +729,13 @@ TskAutoDb::processFile(TSK_FS_FILE * fs_file, const char *path)
      * is to grab the parent folder from files once we return back 
      * into a folder when we are doing our depth-first recursion. */
     if (isDir(fs_file)) {
-        m_curDirId = fs_file->name->meta_addr;
+        m_curDirAddr = fs_file->name->meta_addr;
         tsk_take_lock(&m_curDirPathLock);
         m_curDirPath = string(path) + fs_file->name->name;
         tsk_release_lock(&m_curDirPathLock);
     }
-    else if (m_curDirId != fs_file->name->par_addr) {
-        m_curDirId = fs_file->name->par_addr;
+    else if (m_curDirAddr != fs_file->name->par_addr) {
+        m_curDirAddr = fs_file->name->par_addr;
         tsk_take_lock(&m_curDirPathLock);
         m_curDirPath = path;
         tsk_release_lock(&m_curDirPathLock);
diff --git a/tsk/auto/tsk_case_db.h b/tsk/auto/tsk_case_db.h
index d3c1eec04249a578a8f6a6161795bdc1e138bd82..851c577ee3d918c34ee41ddd79c5628efe94c1f8 100644
--- a/tsk/auto/tsk_case_db.h
+++ b/tsk/auto/tsk_case_db.h
@@ -128,7 +128,7 @@ class TskAutoDb:public TskAuto {
     int64_t m_curVolId;     ///< Object ID of volume currently being processed
     int64_t m_curFsId;      ///< Object ID of file system currently being processed
     int64_t m_curFileId;    ///< Object ID of file currently being processed
-    int64_t m_curDirId;		///< Object ID of the directory currently being processed
+    TSK_INUM_T m_curDirAddr;		///< Meta address the directory currently being processed
     int64_t m_curUnallocDirId;	
     string m_curDirPath;		//< Path of the current directory being processed
     tsk_lock_t m_curDirPathLock; //< protects concurrent access to m_curDirPath
diff --git a/tsk/base/tsk_base.h b/tsk/base/tsk_base.h
index 85c04f312ea3ca2f7844a410d4eccec0dec58099..cdd9bfffda2839c8405612fe254bfd48912d05c7 100644
--- a/tsk/base/tsk_base.h
+++ b/tsk/base/tsk_base.h
@@ -288,7 +288,7 @@ extern "C" {
     typedef enum {
         TSK_WALK_CONT = 0x0,    ///< Walk function should continue to next object
         TSK_WALK_STOP = 0x1,    ///< Walk function should stop processing units and return OK
-        TSK_WALK_ERROR = 0x2,   ///< Walk function should stop processing units and return error
+        TSK_WALK_ERROR = 0x2   ///< Walk function should stop processing units and return error
     } TSK_WALK_RET_ENUM;
 
 
diff --git a/tsk/fs/dcalc_lib.c b/tsk/fs/dcalc_lib.c
index 04477c9c1bdd9ee3fb4f70a6a85f3637e1e9ccba..4d0a57d96b0702b60b4105f5a4a4e498d293f1d9 100644
--- a/tsk/fs/dcalc_lib.c
+++ b/tsk/fs/dcalc_lib.c
@@ -106,7 +106,7 @@ count_slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
             "  Buffer: %" PRIuSIZE "\n", data->flen, size);
 
     /* This is not the last data unit */
-    if (data->flen >= size) {
+    if (data->flen >= (TSK_OFF_T)size) {
         data->flen -= size;
     }
     /* We have passed the end of the allocated space */
@@ -119,7 +119,7 @@ count_slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
         }
     }
     /* This is the last data unit and there is unused space */
-    else if (data->flen < size) {
+    else if (data->flen < (TSK_OFF_T)size) {
         if (data->count-- == 0) {
             tsk_printf("%" PRIuDADDR "\n", addr);
             data->found = 1;
diff --git a/tsk/fs/dcat_lib.c b/tsk/fs/dcat_lib.c
index 7034dbaaa12479bc3c4d6a870b802fe8210b6c91..e05e2cc2daafc3a8fa3daa5eec24638557833db7 100644
--- a/tsk/fs/dcat_lib.c
+++ b/tsk/fs/dcat_lib.c
@@ -58,7 +58,7 @@ tsk_fs_blkcat(TSK_FS_INFO * fs, TSK_FS_BLKCAT_FLAG_ENUM lclflags,
     TSK_DADDR_T addr, TSK_DADDR_T read_num_units)
 {
     char *buf;
-    int i;
+    TSK_DADDR_T i;
 
     if (lclflags & TSK_FS_BLKCAT_STAT) {
         stats(fs);
diff --git a/tsk/fs/dls_lib.c b/tsk/fs/dls_lib.c
index 910d9559f0345ee96de2b13c740b6c39d360f6bf..68a1a5a7e53d02189ed77793d4a79589a56877a5 100644
--- a/tsk/fs/dls_lib.c
+++ b/tsk/fs/dls_lib.c
@@ -122,7 +122,7 @@ slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr,
             size);
 
     /* This is not the last data unit */
-    if (data->flen >= size) {
+    if (data->flen >= (TSK_OFF_T)size) {
         data->flen -= size;
     }
     /* We have passed the end of the allocated space */
@@ -136,7 +136,7 @@ slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr,
         }
     }
     /* This is the last data unit and there is unused space */
-    else if (data->flen < size) {
+    else if (data->flen < (TSK_OFF_T)size) {
         /* Clear the used space and print it */
         memset(buf, 0, (size_t) data->flen);
         if (fwrite(buf, size, 1, stdout) != 1) {
diff --git a/tsk/fs/ext2fs.c b/tsk/fs/ext2fs.c
index 316158fc1e534c2dfb5a5cc387329d0eb7399606..2c530d412d687a8fc7baa01d0a1aec5e5f77c473 100644
--- a/tsk/fs/ext2fs.c
+++ b/tsk/fs/ext2fs.c
@@ -135,7 +135,7 @@ static uint8_t
             TSK_OFF_T offs;
             ssize_t cnt;
 
-            if (gd_size < sizeof(ext4fs_gd))
+            if (gd_size < (int)sizeof(ext4fs_gd))
                 gd_size = sizeof(ext4fs_gd);
 
             if (ext2fs->ext4_grp_buf == NULL) {
@@ -180,7 +180,7 @@ static uint8_t
     else {
         TSK_OFF_T offs;
         ssize_t cnt;
-        if (gd_size < sizeof(ext2fs_gd))
+        if (gd_size < (int)sizeof(ext2fs_gd))
             gd_size = sizeof(ext2fs_gd);
 
         if (ext2fs->grp_buf == NULL) {
diff --git a/tsk/fs/ext2fs_journal.c b/tsk/fs/ext2fs_journal.c
index 73674c5281cbb23e3de193db39d110a8b6aa8c1c..61bdb35bb97f82bc2eeacaf1d2c565a29dd38d87 100644
--- a/tsk/fs/ext2fs_journal.c
+++ b/tsk/fs/ext2fs_journal.c
@@ -154,7 +154,7 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
         return 1;
     }
 
-    if (jinfo->fs_file->meta->size !=
+    if ((TSK_DADDR_T)jinfo->fs_file->meta->size !=
         (jinfo->last_block + 1) * jinfo->bsize) {
         tsk_error_reset();
         tsk_error_set_errno(TSK_ERR_FS_ARG);
@@ -519,7 +519,7 @@ ext2fs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T end,
         return 1;
     }
 
-    if (jinfo->fs_file->meta->size !=
+    if ((TSK_DADDR_T)jinfo->fs_file->meta->size !=
         (jinfo->last_block + 1) * jinfo->bsize) {
         tsk_error_reset();
         tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
diff --git a/tsk/fs/fatfs.c b/tsk/fs/fatfs.c
index d26f259cd3bf2f3e5a1c89f86feacce5c6456562..96fe3b3fc353f1241576b36ceb2c8c45dfc64bd0 100644
--- a/tsk/fs/fatfs.c
+++ b/tsk/fs/fatfs.c
@@ -648,7 +648,7 @@ fatfs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T a_start_blk,
         if ((a_flags & TSK_FS_BLOCK_WALK_FLAG_AONLY) == 0) {
             cnt = tsk_fs_read_block
                 (fs, addr, data_buf, fs->block_size * read_size);
-            if (cnt != fs->block_size * read_size) {
+            if (cnt != (ssize_t)(fs->block_size * read_size)) {
                 if (cnt >= 0) {
                     tsk_error_reset();
                     tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/fatfs_meta.c b/tsk/fs/fatfs_meta.c
index f2cd6c62c5c4e26f466a611a57e718299e63e5e7..b219779d8f6340bfdb3d847ac8e7893086f602f9 100755
--- a/tsk/fs/fatfs_meta.c
+++ b/tsk/fs/fatfs_meta.c
@@ -1373,7 +1373,7 @@ fatfs_inode_walk(TSK_FS_INFO *a_fs, TSK_INUM_T a_start_inum,
             /* Read in a cluster. */
             cnt = tsk_fs_read_block
                 (a_fs, sect, dino_buf, num_sectors_to_process << fatfs->ssize_sh);
-            if (cnt != (num_sectors_to_process << fatfs->ssize_sh)) {
+            if (cnt != (ssize_t)(num_sectors_to_process << fatfs->ssize_sh)) {
                 if (cnt >= 0) {
                     tsk_error_reset();
                     tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/ffs.c b/tsk/fs/ffs.c
index 61c5e6572bd914419c9176a60f02d87842bf2489..ad8894700e18cc724dba750d8449fac838fa55ef 100644
--- a/tsk/fs/ffs.c
+++ b/tsk/fs/ffs.c
@@ -85,8 +85,8 @@ ffs_group_load(FFS_INFO * ffs, FFS_GRPNUM_T grp_num)
 
         /* Perform a sanity check on the data to make sure offsets are in range */
         cg = (ffs_cgd *) ffs->grp_buf;
-        if ((tsk_gets32(fs->endian, cg->cg_iusedoff) > ffs->ffsbsize_b)
-            || (tsk_gets32(fs->endian, cg->cg_freeoff) > ffs->ffsbsize_b)) {
+        if ((tsk_gets32(fs->endian, cg->cg_iusedoff) > (int)ffs->ffsbsize_b)
+            || (tsk_gets32(fs->endian, cg->cg_freeoff) > (int)ffs->ffsbsize_b)) {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_CORRUPT);
             tsk_error_set_errstr2("ffs_group_load: Group %" PRI_FFSGRP
diff --git a/tsk/fs/fs_attr.c b/tsk/fs/fs_attr.c
index a7d80da646a268417448dc3ec882f54f22dc09dc..5703ab74d7f5e8f5475a78cbc33d5d678f3477f3 100644
--- a/tsk/fs/fs_attr.c
+++ b/tsk/fs/fs_attr.c
@@ -797,7 +797,7 @@ tsk_fs_attr_walk_res(const TSK_FS_ATTR * fs_attr,
     retval = TSK_WALK_CONT;
     for (off = 0; off < fs_attr->size; off += read_len) {
 
-        if (fs_attr->size - off > buf_len)
+        if (fs_attr->size - off > (TSK_OFF_T)buf_len)
             read_len = buf_len;
         else
             read_len = (size_t) (fs_attr->size - off);
@@ -1133,7 +1133,7 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
         }
 
         len_toread = a_len;
-        if (a_offset + a_len > a_fs_attr->size) {
+        if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->size) {
             len_toread = (size_t) (a_fs_attr->size - a_offset);
             memset(&a_buf[len_toread], 0, a_len - len_toread);
         }
@@ -1167,12 +1167,12 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
         // determine how many bytes we can copy
         len_toread = a_len;
         if (a_flags & TSK_FS_FILE_READ_FLAG_SLACK) {
-            if (a_offset + a_len > a_fs_attr->nrd.allocsize)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->nrd.allocsize)
                 len_toread =
                     (size_t) (a_fs_attr->nrd.allocsize - a_offset);
         }
         else {
-            if (a_offset + a_len > a_fs_attr->size)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->size)
                 len_toread = (size_t) (a_fs_attr->size - a_offset);
         }
         // wipe the buffer we won't read into
@@ -1259,7 +1259,7 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
                 cnt =
                     tsk_fs_read(fs, fs_offset_b,
                     &a_buf[len_toread - len_remain], len_inrun);
-                if (cnt != len_inrun) {
+                if (cnt != (ssize_t)len_inrun) {
                     if (cnt >= 0) {
                         tsk_error_reset();
                         tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/fs_block.c b/tsk/fs/fs_block.c
index 47b27e1916056169537071902f56404d4f273bf8..946c45aea19b66113bba091078d1e3380e3ed470 100644
--- a/tsk/fs/fs_block.c
+++ b/tsk/fs/fs_block.c
@@ -129,7 +129,7 @@ tsk_fs_block_get_flag(TSK_FS_INFO * a_fs, TSK_FS_BLOCK * a_fs_block,
         cnt =
             tsk_img_read(a_fs->img_info, a_fs->offset + offs,
             a_fs_block->buf, len);
-        if (cnt != len) {
+        if (cnt != (ssize_t)len) {
             return NULL;
         }
     }
diff --git a/tsk/fs/fs_io.c b/tsk/fs/fs_io.c
index 760cc8da63b9c065b62559dd75c4db20d805867e..c8f960c170c6e84d6ca142cde927c3801dd862a8 100644
--- a/tsk/fs/fs_io.c
+++ b/tsk/fs/fs_io.c
@@ -51,7 +51,7 @@ fs_prepost_read(TSK_FS_INFO * a_fs, TSK_OFF_T a_off, char *a_buf,
         TSK_DADDR_T blk = cur_off / a_fs->block_size;
         size_t read_len = a_fs->block_size - cur_off % a_fs->block_size;
 
-        if (read_len + cur_off > end_off)
+        if ((TSK_OFF_T)read_len + cur_off > end_off)
             read_len = (size_t) (end_off - cur_off);
 
         read_off =
diff --git a/tsk/fs/fs_open.c b/tsk/fs/fs_open.c
index 6f7404922cae9a6bff52e89016215c16a4a28115..fe27cb81931e124cb1952b0082dce35ab52c6f86 100644
--- a/tsk/fs/fs_open.c
+++ b/tsk/fs/fs_open.c
@@ -85,7 +85,6 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
 {
     TSK_FS_INFO *fs_info, *fs_first = NULL;
     const char *name_first;
-    int i;
 
     const struct {
         char* name;
@@ -115,6 +114,7 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
      * We need to try all of them in case more than one matches
      */
     if (a_ftype == TSK_FS_TYPE_DETECT) {
+        unsigned long i;
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "fsopen: Auto detection mode at offset %" PRIuOFF "\n",
diff --git a/tsk/fs/fs_types.c b/tsk/fs/fs_types.c
index 38db26a4fa00cf4f64b9ccbf2dbd9892186c1ccd..aea78769e9d4dbf3967a948324bc976b523feecb 100644
--- a/tsk/fs/fs_types.c
+++ b/tsk/fs/fs_types.c
@@ -56,7 +56,7 @@ static FS_TYPES fs_type_table[] = {
     {"ufs1", TSK_FS_TYPE_FFS1, "UFS1"},
     {"ufs2", TSK_FS_TYPE_FFS2, "UFS2"},
     {"yaffs2", TSK_FS_TYPE_YAFFS2, "YAFFS2"},
-    {0},
+    {0,0,""}
 };
 
 static FS_TYPES fs_legacy_type_table[] = {
@@ -70,7 +70,7 @@ static FS_TYPES fs_legacy_type_table[] = {
     {"netbsd", TSK_FS_TYPE_FFS1, "NetBSD FFS"},
     {"openbsd", TSK_FS_TYPE_FFS1, "OpenBSD FFS"},
     {"solaris", TSK_FS_TYPE_FFS1B, "Solaris FFS"},
-    {0},
+    {0,0,""}
 };
 
 
diff --git a/tsk/fs/iso9660_dent.c b/tsk/fs/iso9660_dent.c
index dc8438da147581b3ee4ac66ea7dd94dfaa2a47a1..4dc4d61bf02e0db79436b374b190567eab480626 100644
--- a/tsk/fs/iso9660_dent.c
+++ b/tsk/fs/iso9660_dent.c
@@ -158,7 +158,7 @@ iso9660_proc_dir(TSK_FS_INFO * a_fs, TSK_FS_DIR * a_fs_dir, char *buf,
              * that had a file with 0 bytes with the same starting block as another
              * file. */
             for (in = iso->in_list; in; in = in->next) {
-                if (in->dentry_offset == dir_offs + buf_idx)
+                if (in->dentry_offset == dir_offs + (TSK_OFF_T)buf_idx)
                     break;
             }
 
@@ -285,7 +285,7 @@ iso9660_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir,
         return TSK_ERR;
 
     cnt = tsk_fs_file_read(fs_dir->fs_file, 0, buf, length, 0);
-    if (cnt != length) {
+    if (cnt != (ssize_t)length) {
         if (cnt >= 0) {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/lzvn.c b/tsk/fs/lzvn.c
index a923122ac1caeaf491715f6582a4562eed68c66c..f03afefa268346d4b02611191fe79a2d2d9d40c7 100644
--- a/tsk/fs/lzvn.c
+++ b/tsk/fs/lzvn.c
@@ -95,9 +95,11 @@ LZFSE_INLINE uint64_t load8(const void *ptr) {
 }
 
 /*! @abstract Store bytes to memory location DST. */
+/*
 LZFSE_INLINE void store2(void *ptr, uint16_t data) {
   memcpy(ptr, &data, sizeof data);
 }
+*/
 
 LZFSE_INLINE void store4(void *ptr, uint32_t data) {
   memcpy(ptr, &data, sizeof data);
diff --git a/tsk/fs/ntfs.c b/tsk/fs/ntfs.c
index f6ae77de478d60a618fcc94bb3b6108551af900d..84bc9bc2f5078d9534dbfe955d9433f0e1fbdd4d 100755
--- a/tsk/fs/ntfs.c
+++ b/tsk/fs/ntfs.c
@@ -293,7 +293,7 @@ ntfs_dinode_lookup(NTFS_INFO * a_ntfs, char *a_buf, TSK_INUM_T a_mftnum)
         ssize_t cnt;
         /* read the first part into mft */
         cnt = tsk_fs_read(&a_ntfs->fs_info, mftaddr_b, a_buf, mftaddr_len);
-        if (cnt != mftaddr_len) {
+        if (cnt != (ssize_t)mftaddr_len) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
@@ -309,7 +309,7 @@ ntfs_dinode_lookup(NTFS_INFO * a_ntfs, char *a_buf, TSK_INUM_T a_mftnum)
             (&a_ntfs->fs_info, mftaddr2_b,
             (char *) ((uintptr_t) a_buf + (uintptr_t) mftaddr_len),
             a_ntfs->mft_rsize_b - mftaddr_len);
-        if (cnt != a_ntfs->mft_rsize_b - mftaddr_len) {
+        if (cnt != (ssize_t)(a_ntfs->mft_rsize_b - mftaddr_len)) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
@@ -1530,7 +1530,7 @@ ntfs_file_read_special(const TSK_FS_ATTR * a_fs_attr,
                     "ntfs_file_read_special: Returning 0s for read past end of initsize (%"
                     PRIuINUM ")\n", a_fs_attr->fs_file->meta->addr);
 
-            if (a_offset + a_len > a_fs_attr->nrd.allocsize)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->nrd.allocsize)
                 len = (ssize_t) (a_fs_attr->nrd.allocsize - a_offset);
             else
                 len = (ssize_t) a_len;
@@ -3657,7 +3657,7 @@ ntfs_load_secure(NTFS_INFO * ntfs)
     cnt =
         tsk_fs_attr_read(fs_attr_sii, 0, sii_buffer.buffer,
         sii_buffer.size, TSK_FS_FILE_READ_FLAG_NONE);
-    if (cnt != sii_buffer.size) {
+    if (cnt != (ssize_t)sii_buffer.size) {
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "ntfs_load_secure: error reading $Secure:$SII attribute: %s\n",
@@ -3720,7 +3720,7 @@ ntfs_load_secure(NTFS_INFO * ntfs)
         tsk_fs_attr_read(fs_attr_sds, 0,
         ntfs->sds_data.buffer, ntfs->sds_data.size,
         TSK_FS_FILE_READ_FLAG_NONE);
-    if (cnt != ntfs->sds_data.size) {
+    if (cnt != (ssize_t)ntfs->sds_data.size) {
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "ntfs_load_secure: error reading $Secure:$SDS attribute: %s\n",
diff --git a/tsk/fs/ntfs_dent.cpp b/tsk/fs/ntfs_dent.cpp
index ccbe67d653c04998a7b0eb194fa827b1a864e68a..e222d5be021b42c56572e221ba36b0c79007e20d 100644
--- a/tsk/fs/ntfs_dent.cpp
+++ b/tsk/fs/ntfs_dent.cpp
@@ -218,6 +218,7 @@ ntfs_parent_act(TSK_FS_FILE * fs_file, void * /*ptr*/)
 
     if ((fs_file->meta->flags & TSK_FS_META_FLAG_ALLOC) &&
         fs_file->meta->type == TSK_FS_META_TYPE_REG) {
+            // @@@ This doesn't seem to be used anywhere....
             if (ntfs->alloc_file_count == -1)
                 ntfs->alloc_file_count = 1;
             else
diff --git a/tsk/fs/tsk_ntfs.h b/tsk/fs/tsk_ntfs.h
index 2045ba4e1c5dec75face05bb7c78364c128d1f98..f08a4785362ba104adbc2761d3fe2543d93f9915 100644
--- a/tsk/fs/tsk_ntfs.h
+++ b/tsk/fs/tsk_ntfs.h
@@ -730,7 +730,7 @@ extern "C" {
         NTFS_SXX_BUFFER sds_data;       // (r/w shared - lock)
 #endif
 
-        uint32_t alloc_file_count;      // number of allocated regular files, will be -1
+        int alloc_file_count;      // number of allocated regular files, will be -1
                                         // until a directory is opened.
         NTFS_USNJINFO *usnjinfo;        // update sequence number journal
     } NTFS_INFO;
diff --git a/tsk/fs/unix_misc.c b/tsk/fs/unix_misc.c
index 85ff4d4d292ba06974ee6caed6be61789d57e0ee..5ce762b2d7639fd72b299d817b35e80b797ba4e3 100644
--- a/tsk/fs/unix_misc.c
+++ b/tsk/fs/unix_misc.c
@@ -174,7 +174,7 @@ unix_make_data_run_indirect(TSK_FS_INFO * fs, TSK_FS_ATTR * fs_attr,
         ssize_t cnt;
         // read the data into the scratch buffer
         cnt = tsk_fs_read_block(fs, addr, buf[0], fs_bufsize);
-        if (cnt != fs_bufsize) {
+        if (cnt != (ssize_t)fs_bufsize) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/img/aff.c b/tsk/img/aff.c
index 81f02f32effe7b92a39c3334719e8d1c294e9a75..6e4b786709a9161fa192e3be88b337b2c0a86df1 100644
--- a/tsk/img/aff.c
+++ b/tsk/img/aff.c
@@ -38,7 +38,7 @@ aff_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf, size_t len)
     }
 
     if (aff_info->seek_pos != offset) {
-        if (af_seek(aff_info->af_file, offset, SEEK_SET) != offset) {
+        if (af_seek(aff_info->af_file, offset, SEEK_SET) != (uint64_t)offset) {
             tsk_error_reset();
             // @@@ ADD more specific error messages
             tsk_error_set_errno(TSK_ERR_IMG_SEEK);
@@ -66,7 +66,7 @@ aff_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf, size_t len)
         // @@@ We could improve this if there is an AFF call
         // to see if the data exists or not
         if ((af_eof(aff_info->af_file) == 0) &&
-            (offset + len < img_info->size)) {
+            (offset + (TSK_OFF_T)len < img_info->size)) {
             memset(buf, 0, len);
             cnt = len;
         }
diff --git a/tsk/img/img_types.c b/tsk/img/img_types.c
index 9897299ddf1286cf6cb7619d8625ec2619d59c6e..5a36a76cd160507df2f8c9c21c5ca24f831c140b 100644
--- a/tsk/img/img_types.c
+++ b/tsk/img/img_types.c
@@ -46,7 +46,7 @@ static IMG_TYPES img_open_table[] = {
 #if HAVE_LIBVHDI
     {"vhd", TSK_IMG_TYPE_VHD_VHD, "Virtual Hard Drive (Microsoft)"},
 #endif
-    {0},
+    {0,0,""},
 };
 
 
diff --git a/tsk/img/tsk_img.h b/tsk/img/tsk_img.h
index b412116028746cb3f041fa57f6d0772accee22f5..131f23c3354773544b81b1e445a2187255d2581f 100644
--- a/tsk/img/tsk_img.h
+++ b/tsk/img/tsk_img.h
@@ -69,7 +69,7 @@ extern "C" {
         TSK_IMG_TYPE_VHD_VHD = 0x0100,   ///< VHD version
         TSK_IMG_TYPE_EXTERNAL = 0x1000,  ///< external defined format which at least implements TSK_IMG_INFO, used by pytsk
 
-        TSK_IMG_TYPE_UNSUPP = 0xffff,   ///< Unsupported disk image type
+        TSK_IMG_TYPE_UNSUPP = 0xffff   ///< Unsupported disk image type
     } TSK_IMG_TYPE_ENUM;
 
 #define TSK_IMG_INFO_CACHE_NUM  32
diff --git a/tsk/vs/mm_types.c b/tsk/vs/mm_types.c
index 178c4e7a3134a62f3d6802cc578375afc9343784..9cfd1370d87916b2b471ca265a01d23800699511 100644
--- a/tsk/vs/mm_types.c
+++ b/tsk/vs/mm_types.c
@@ -29,7 +29,7 @@ VS_TYPES vs_open_table[] = {
     {"sun", TSK_VS_TYPE_SUN,
         "Sun Volume Table of Contents (Solaris)"},
     {"gpt", TSK_VS_TYPE_GPT, "GUID Partition Table (EFI)"},
-    {0},
+    {0, 0, ""},
 };
 
 /**
diff --git a/unit_tests/base/Makefile.am b/unit_tests/base/Makefile.am
index dcb1633103ca83aa21fc5d5d4bc19dbefa229b38..2eb67c711abdc5b4fbf1e74327cfd57392ce3554 100644
--- a/unit_tests/base/Makefile.am
+++ b/unit_tests/base/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. $(CPPUNIT_CFLAGS)
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la $(CPPUNIT_LIBS)
 LDFLAGS = -static