diff --git a/lib/Makefile.am b/lib/Makefile.am
index 5492804..42ecccd 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -10,7 +10,7 @@
 nodist_libinclude_HEADERS = zipconf.h
 
 # also update CMakeLists.txt when changing version
-libzip_la_LDFLAGS=-no-undefined -version-info 4:0:0
+libzip_la_LDFLAGS=-no-undefined -version-info 5:0:0
 libzip_la_CPPFLAGS=-I$(srcdir)/gladman-fcrypt
 libzip_la_LIBADD=@LTLIBOBJS@
 
diff --git a/lib/zip.h b/lib/zip.h
index 14adc17..abdaf07 100644
--- a/lib/zip.h
+++ b/lib/zip.h
@@ -322,7 +322,6 @@
 ZIP_EXTERN void zip_error_get(zip_t *, int *, int *); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
 ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
 ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
-ZIP_EXTERN int zip_archive_set_tempdir(zip_t *, const char *);
 #endif
 
 ZIP_EXTERN int zip_close(zip_t *);
diff --git a/lib/zip_new.c b/lib/zip_new.c
index 5d76189..c05c2a3 100644
--- a/lib/zip_new.c
+++ b/lib/zip_new.c
@@ -68,7 +68,6 @@
     za->entry = NULL;
     za->nopen_source = za->nopen_source_alloc = 0;
     za->open_source = NULL;
-    za->tempdir = NULL;
     za->progress_callback = NULL;
     
     return za;
diff --git a/lib/zip_open.c b/lib/zip_open.c
index 2bade49..27bbeeb 100644
--- a/lib/zip_open.c
+++ b/lib/zip_open.c
@@ -157,27 +157,6 @@
     }
 }
 
-ZIP_EXTERN int
-zip_archive_set_tempdir(zip_t *za, const char *tempdir)
-{
-    char *new_tempdir;
-
-    if (tempdir) {
-        if ((new_tempdir = strdup(tempdir)) == NULL) {
-            zip_error_set(&za->error, ZIP_ER_MEMORY, errno);
-            return -1;
-        }
-    }
-    else
-        new_tempdir = NULL;
-
-    free(za->tempdir);
-    za->tempdir = new_tempdir;
-
-    return 0;
-}
-
-
 ZIP_EXTERN void
 zip_register_progress_callback(zip_t *za, zip_progress_callback_t progress_callback)
 {
diff --git a/lib/zipint.h b/lib/zipint.h
index 1242fe2..2c5c6b9 100644
--- a/lib/zipint.h
+++ b/lib/zipint.h
@@ -199,7 +199,6 @@
 
     zip_hash_t *names;			/* hash table for name lookup */
 
-    char *tempdir;                      /* custom temp dir (needed e.g. for OS X sandboxing) */
     zip_progress_callback_t progress_callback; /* progress callback for zip_close() */
 };
 
diff --git a/man/zip_archive_set_tempdir.mdoc b/man/zip_archive_set_tempdir.mdoc
deleted file mode 100644
index 3f38078..0000000
--- a/man/zip_archive_set_tempdir.mdoc
+++ /dev/null
@@ -1,67 +0,0 @@
-.\" zip_archive_set_tempdir.mdoc -- set temporary directory for archive
-.\" Copyright (C) 2017 Dieter Baron and Thomas Klausner
-.\"
-.\" This file is part of libzip, a library to manipulate ZIP archives.
-.\" The authors can be contacted at <libzip@nih.at>
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in
-.\"    the documentation and/or other materials provided with the
-.\"    distribution.
-.\" 3. The names of the authors may not be used to endorse or promote
-.\"    products derived from this software without specific prior
-.\"    written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
-.\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd December 18, 2016
-.Dt ZIP_ARCHIVE_SET_TEMPDIR 3
-.Os
-.Sh NAME
-.Nm zip_archive_set_tempdir
-.Nd set temporary directory for archive
-.Sh LIBRARY
-libzip (-lzip)
-.Sh SYNOPSIS
-.In zip.h
-.Ft int
-.Fn zip_archive_set_tempdir "zip_t *archive" "const char *path"
-.Sh DESCRIPTION
-The
-.Fn zip_archive_set_tempdir
-function sets the temporary directory for
-.Ar archive
-to
-.Ar path .
-The temporary directory is used for writing the intermediate zip archive during
-.Xr zip_close 3
-before the original zip archive is replaced with the completely written replacement.
-In general, it should be on the same file system as the original archive.
-.Sh RETURN VALUES
-Upon successful completion 0 is returned.
-Otherwise, \-1 is returned and the error code in
-.Ar archive
-is set to indicate the error.
-.Sh SEE ALSO
-.Xr libzip 3 ,
-.Xr zip_close 3
-.Sh AUTHORS
-.An -nosplit
-.An Dieter Baron Aq Mt dillo@nih.at
-and
-.An Thomas Klausner Aq Mt tk@giga.or.at
