error("NULL input pointer and missing fill function");
                goto exit_1;
        } else {
-               inp = large_malloc(lz4_compressbound(uncomp_chunksize));
+               inp = large_malloc(LZ4_compressBound(uncomp_chunksize));
                if (!inp) {
                        error("Could not allocate input buffer");
                        goto exit_1;
                        inp += 4;
                        size -= 4;
                } else {
-                       if (chunksize > lz4_compressbound(uncomp_chunksize)) {
+                       if (chunksize > LZ4_compressBound(uncomp_chunksize)) {
                                error("chunk length is longer than allocated");
                                goto exit_2;
                        }
                        out_len -= dest_len;
                } else
                        dest_len = out_len;
-               ret = lz4_decompress(inp, &chunksize, outp, dest_len);
+
+               ret = LZ4_decompress_fast(inp, outp, dest_len);
+               chunksize = ret;
 #else
                dest_len = uncomp_chunksize;
-               ret = lz4_decompress_unknownoutputsize(inp, chunksize, outp,
-                               &dest_len);
+
+               ret = LZ4_decompress_safe(inp, outp, chunksize, dest_len);
+               dest_len = ret;
 #endif
                if (ret < 0) {
                        error("Decoding failed");