diff --git a/CMakeLists.txt b/CMakeLists.txt
index e4ec98ad..b673c1d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,8 +10,9 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 set (ZINT_VERSION_MAJOR 2)
 set (ZINT_VERSION_MINOR 9)
-set (ZINT_VERSION_RELEASE 0)
-set (ZINT_VERSION "${ZINT_VERSION_MAJOR}.${ZINT_VERSION_MINOR}.${ZINT_VERSION_RELEASE}" )
+set (ZINT_VERSION_RELEASE 1)
+set (ZINT_VERSION_BUILD ".9") # Set to "" before release, set to ".9" after release
+set (ZINT_VERSION "${ZINT_VERSION_MAJOR}.${ZINT_VERSION_MINOR}.${ZINT_VERSION_RELEASE}${ZINT_VERSION_BUILD}" )
 
 add_definitions (-DZINT_VERSION=\"${ZINT_VERSION}\" -Wall)
 
diff --git a/backend/Makefile.mingw b/backend/Makefile.mingw
index e79a9122..d7587cb8 100644
--- a/backend/Makefile.mingw
+++ b/backend/Makefile.mingw
@@ -6,7 +6,7 @@
 # make clean		cleans up a previous compilation and any object or editor files
 #
 
-ZINT_VERSION:=-DZINT_VERSION=\"2.3.2\"
+ZINT_VERSION:=-DZINT_VERSION=\"2.9.1.9\"
 
 
 CC:= gcc
@@ -24,14 +24,13 @@ APP:=zint
 DLL:=$(APP).dll
 STATLIB:=lib$(APP).a
 
-COMMON_OBJ:= common.o render.o png.o library.o ps.o large.o reedsol.o gs1.o svg.o \
-	hanxin.o mailmark.o dotcode.o codablock.o emf.o eci.o \
-	raster.o tif.o gif.o pcx.o bmp.o
+COMMON_OBJ:= common.o library.o large.o reedsol.o gs1.o eci.o general_field.o sjis.o gb2312.o gb18030.o
 ONEDIM_OBJ:= code.o code128.o 2of5.o upcean.o telepen.o medical.o plessey.o rss.o
-POSTAL_OBJ:= postal.o auspost.o imail.o
-TWODIM_OBJ:= code16k.o dmatrix.o pdf417.o qr.o maxicode.o composite.o aztec.o code49.o code1.o gridmtx.o
+POSTAL_OBJ:= postal.o auspost.o imail.o mailmark.o
+TWODIM_OBJ:= code16k.o codablock.o dmatrix.o pdf417.o qr.o maxicode.o composite.o aztec.o code49.o code1.o gridmtx.o hanxin.o dotcode.o ultra.o
+OUTPUT_OBJ:= vector.o ps.o svg.o emf.o bmp.o pcx.o gif.o png.o tif.o raster.o output.o
 
-LIB_OBJ:= $(COMMON_OBJ) $(ONEDIM_OBJ) $(TWODIM_OBJ) $(POSTAL_OBJ)
+LIB_OBJ:= $(COMMON_OBJ) $(ONEDIM_OBJ) $(TWODIM_OBJ) $(POSTAL_OBJ) $(OUTPUT_OBJ)
 DLL_OBJ:= $(LIB_OBJ:.o=.lo) dllversion.lo
 
 
diff --git a/backend/dllversion.c b/backend/dllversion.c
index 71f5a757..bedad645 100644
--- a/backend/dllversion.c
+++ b/backend/dllversion.c
@@ -2,6 +2,7 @@
 #if defined (_WIN32) && (defined(_USRDLL) || defined(DLL_EXPORT) || defined(PIC))
 #include <windows.h>
 #include <shlwapi.h>
+#include "zint.h"
 
 #ifdef __cplusplus
 extern "C"
@@ -19,12 +20,12 @@ HRESULT DllGetVersion (DLLVERSIONINFO2* pdvi)
 	if (!pdvi || (sizeof(*pdvi) != pdvi->info1.cbSize))
 		return (E_INVALIDARG);
 
-	pdvi->info1.dwMajorVersion = 2;
-	pdvi->info1.dwMinorVersion = 8;
-	pdvi->info1.dwBuildNumber = 1;
+	pdvi->info1.dwMajorVersion = ZINT_VERSION_MAJOR;
+	pdvi->info1.dwMinorVersion = ZINT_VERSION_MINOR;
+	pdvi->info1.dwBuildNumber = ZINT_VERSION_RELEASE;
 	pdvi->info1.dwPlatformID = DLLVER_PLATFORM_WINDOWS;
 	if (sizeof(DLLVERSIONINFO2) == pdvi->info1.cbSize)
-		pdvi->ullVersion = MAKEDLLVERULL(2, 8, 1, 0);
+		pdvi->ullVersion = MAKEDLLVERULL(ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE, ZINT_VERSION_BUILD);
 
 	return S_OK;
 }
diff --git a/backend/library.c b/backend/library.c
index b25ad3ab..86f75ade 100644
--- a/backend/library.c
+++ b/backend/library.c
@@ -1618,5 +1618,8 @@ int ZBarcode_Encode_File_and_Buffer_Vector(struct zint_symbol *symbol, char *fil
 }
 
 int ZBarcode_Version() {
+    if (ZINT_VERSION_BUILD) {
+        return (ZINT_VERSION_MAJOR * 10000) + (ZINT_VERSION_MINOR * 100) + ZINT_VERSION_RELEASE * 10 + ZINT_VERSION_BUILD;
+    }
     return (ZINT_VERSION_MAJOR * 10000) + (ZINT_VERSION_MINOR * 100) + ZINT_VERSION_RELEASE;
 }
diff --git a/backend/libzint.rc b/backend/libzint.rc
index 39cd1764..8e612498 100644
--- a/backend/libzint.rc
+++ b/backend/libzint.rc
@@ -2,13 +2,16 @@
 #include <windows.h>
 #include <winver.h>
 
+#define VER_FILEVERSION        2,9,1,9
+#define VER_FILEVERSION_STR    "2,9,1,9\0"
+
 #ifdef GCC_WINDRES
 VS_VERSION_INFO		VERSIONINFO
 #else
 VS_VERSION_INFO		VERSIONINFO
 #endif
-  FILEVERSION		2,8,1,0
-  PRODUCTVERSION	2,8,1,0
+  FILEVERSION		VER_FILEVERSION
+  PRODUCTVERSION	VER_FILEVERSION
   FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK
 #ifdef _DEBUG
   FILEFLAGS		VS_FF_DEBUG
@@ -25,14 +28,14 @@ BEGIN
     //language ID = U.S. English, char set = Windows, Multilingual
     BEGIN
       VALUE "FileDescription",	"libzint barcode library\0"
-      VALUE "FileVersion",	"2.9.0.0\0"
+      VALUE "FileVersion",	VER_FILEVERSION_STR
       VALUE "InternalName",	"zint.dll\0"
       VALUE "LegalCopyright",	"Copyright � 2020 Robin Stuart & BogDan Vatra\0"
       VALUE "OriginalFilename",	"zint.dll\0"
       VALUE "ProductName",	"libzint\0"
-      VALUE "ProductVersion",	"2.9.0.0\0"
+      VALUE "ProductVersion",	VER_FILEVERSION_STR
       VALUE "License",  "BSD License version 3\0"
-      VALUE "WWW", "http://www.sourceforge.net/projects/zint"      
+      VALUE "WWW", "http://www.sourceforge.net/projects/zint\0"
     END
   END
   BLOCK "VarFileInfo"
diff --git a/backend/ps.c b/backend/ps.c
index cab9c0cf..fd3a37ab 100644
--- a/backend/ps.c
+++ b/backend/ps.c
@@ -199,7 +199,11 @@ INTERNAL int ps_plot(struct zint_symbol *symbol) {
 
     /* Start writing the header */
     fprintf(feps, "%%!PS-Adobe-3.0 EPSF-3.0\n");
-    fprintf(feps, "%%%%Creator: Zint %d.%d.%d\n", ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE);
+    if (ZINT_VERSION_BUILD) {
+        fprintf(feps, "%%%%Creator: Zint %d.%d.%d.%d\n", ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE, ZINT_VERSION_BUILD);
+    } else {
+        fprintf(feps, "%%%%Creator: Zint %d.%d.%d\n", ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE);
+    }
     fprintf(feps, "%%%%Title: Zint Generated Symbol\n");
     fprintf(feps, "%%%%Pages: 0\n");
     fprintf(feps, "%%%%BoundingBox: 0 0 %d %d\n", (int) ceil(symbol->vector->width), (int) ceil(symbol->vector->height));
diff --git a/backend/zint.h b/backend/zint.h
index 65579998..1bf62844 100644
--- a/backend/zint.h
+++ b/backend/zint.h
@@ -111,7 +111,8 @@ extern "C" {
 
 #define ZINT_VERSION_MAJOR      2
 #define ZINT_VERSION_MINOR      9
-#define ZINT_VERSION_RELEASE    0
+#define ZINT_VERSION_RELEASE    1
+#define ZINT_VERSION_BUILD      9 /* Set to 0 before release, set to 9 after release */
 
     /* Tbarcode 7 codes */
 #define BARCODE_CODE11          1
diff --git a/backend_qt/backend_qt.pro b/backend_qt/backend_qt.pro
index 8fe43dfe..3abf60bf 100644
--- a/backend_qt/backend_qt.pro
+++ b/backend_qt/backend_qt.pro
@@ -19,7 +19,7 @@ TARGET = QtZint
 INCLUDEPATH += ../backend
 
 #EDIT THIS !!!!
-DEFINES += ZINT_VERSION="\\\"2.7.1\\\""
+DEFINES += ZINT_VERSION="\\\"2.9.1.9\\\""
 
 !contains(DEFINES, NO_PNG) {
     INCLUDEPATH += ../../lpng
@@ -129,7 +129,7 @@ SOURCES += ../backend/2of5.c \
            ../backend/png.c \
            qzint.cpp
 
-VERSION = 2.7.1
+VERSION = 2.9.1.9
 
 #DESTDIR = .
 
diff --git a/backend_qt/backend_vc8.pro b/backend_qt/backend_vc8.pro
index 28f78304..360ca518 100644
--- a/backend_qt/backend_vc8.pro
+++ b/backend_qt/backend_vc8.pro
@@ -4,7 +4,7 @@ win32 {
 }
 
 TARGET = QtZint2
-VERSION = 2.3.0
+VERSION = 2.9.1.9
 
 QMAKE_CFLAGS += /TP /wd4018 /wd4244 /wd4305
 QMAKE_CXXFLAGS += /TP /wd4018 /wd4244 /wd4305
@@ -18,32 +18,42 @@ DEFINES +=  _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS ZINT_VERSION=\\\"$$
 }
 
 HEADERS +=  ../backend/aztec.h \
+            ../backend/bmp.h \
             ../backend/channel_precalcs.h \
             ../backend/code1.h \
+            ../backend/code128.h \
             ../backend/code49.h \
             ../backend/common.h \
             ../backend/composite.h \
             ../backend/dmatrix.h \
+            ../backend/eci.h \
+            ../backend/emf.h \
             ../backend/font.h \
             ../backend/gb18030.h \
             ../backend/gb2312.h \
+            ../backend/general_field.h \
             ../backend/gridmtx.h \
             ../backend/gs1.h \
+            ../backend/hanxin.h \
             ../backend/large.h \
             ../backend/maxicode.h \
-            ../backend/maxihex.h \
             ../backend/ms_stdint.h \
+            ../backend/output.h \
+            ../backend/pcx.h \
             ../backend/pdf417.h \
             ../backend/qr.h \
             ../backend/reedsol.h \
             ../backend/rss.h \
             ../backend/sjis.h \
+            ../backend/tif.h \
             ../backend/zint.h \
             qzint.h
 
 SOURCES += ../backend/2of5.c \
            ../backend/auspost.c \
            ../backend/aztec.c \
+           ../backend/bmp.c \
+           ../backend/codablock.c \
            ../backend/code.c \
            ../backend/code1.c \
            ../backend/code128.c \
@@ -52,23 +62,36 @@ SOURCES += ../backend/2of5.c \
            ../backend/common.c \
            ../backend/composite.c \
            ../backend/dmatrix.c \
+           ../backend/dotcode.c \
+           ../backend/eci.c \
+           ../backend/emf.c \
            ../backend/gb18030.c \
            ../backend/gb2312.c \
            ../backend/gridmtx.c \
+           ../backend/general_field.c \
+           ../backend/gif.c \
            ../backend/gs1.c \
+           ../backend/hanxin.c \
            ../backend/imail.c \
            ../backend/large.c \
            ../backend/library.c \
+           ../backend/mailmark.c \
            ../backend/maxicode.c \
            ../backend/medical.c \
+           ../backend/output.c \
+           ../backend/pcx.c \
            ../backend/pdf417.c \
            ../backend/plessey.c \
            ../backend/postal.c \
            ../backend/ps.c \
            ../backend/qr.c \
+           ../backend/raster.c \
            ../backend/reedsol.c \
            ../backend/rss.c \
            ../backend/svg.c \
            ../backend/telepen.c \
+           ../backend/tif.c \
+           ../backend/ultra.c \
            ../backend/upcean.c \
+           ../backend/vector.c \
            qzint.cpp
diff --git a/backend_tcl/zint.c b/backend_tcl/zint.c
index d4ea3ecc..4a45dec2 100644
--- a/backend_tcl/zint.c
+++ b/backend_tcl/zint.c
@@ -139,7 +139,7 @@
 /*----------------------------------------------------------------------------*/
 /* > File option defines */
 
-#define VERSION "2.9.0"
+#define VERSION "2.9.1.9"
 
 /*----------------------------------------------------------------------------*/
 /* >>>>> Hepler defines */
diff --git a/frontend/Makefile.mingw b/frontend/Makefile.mingw
index 412a4fdf..aadd90c5 100644
--- a/frontend/Makefile.mingw
+++ b/frontend/Makefile.mingw
@@ -6,7 +6,7 @@
 # make clean		cleans up a previous compilation and any object or editor files
 #
 
-ZINT_VERSION:=-DZINT_VERSION=\"2.5.0\"
+ZINT_VERSION:=-DZINT_VERSION=\"2.9.1.9\"
 
 CC := gcc
 CFLAGS := -D_WIN32 -O2 -fms-extensions -mms-bitfields -fno-exceptions -fomit-frame-pointer -Wall -I../backend
diff --git a/frontend/main.c b/frontend/main.c
index 3fd5c5fe..0989676e 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -77,8 +77,12 @@ static void types(void) {
 
 /* Output usage information */
 static void usage(void) {
-    printf( "Zint version %d.%d.%d\n"
-            "Encode input data in a barcode and save as BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF/TXT\n\n"
+    if (ZINT_VERSION_BUILD) {
+        printf( "Zint version %d.%d.%d.%d\n", ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE, ZINT_VERSION_BUILD);
+    } else {
+        printf( "Zint version %d.%d.%d\n", ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE);
+    }
+    printf( "Encode input data in a barcode and save as BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF/TXT\n\n"
             "  -b, --barcode=NUMBER  Number of barcode type. Default is 20 (Code 128)\n"
             "  --addongap=NUMBER     Set add-on gap in multiples of X-dimension for UPC/EAN\n"
             "  --batch               Treat each line of input file as a separate data set\n"
@@ -127,7 +131,7 @@ static void usage(void) {
             "  -w, --whitesp=NUMBER  Set width of whitespace in multiples of X-dimension\n"
             "  --werror              Convert all warnings into errors\n"
             "  --wzpl                ZPL compatibility mode (allows non-standard symbols)\n"
-            , ZINT_VERSION_MAJOR, ZINT_VERSION_MINOR, ZINT_VERSION_RELEASE);
+            );
 }
 
 /* Display supported ECI codes */
diff --git a/frontend/zint.rc b/frontend/zint.rc
index 1e35c4c8..8ee23df4 100644
--- a/frontend/zint.rc
+++ b/frontend/zint.rc
@@ -1,85 +1,46 @@
 #define WIN32_LEAN_AND_MEAN
-
 #include <windows.h>
-
 #include <winver.h>
 
-
+#define VER_FILEVERSION        2,9,1,9
+#define VER_FILEVERSION_STR    "2,9,1,9\0"
 
 #ifdef GCC_WINDRES
-
 VS_VERSION_INFO		VERSIONINFO
-
 #else
-
 VS_VERSION_INFO		VERSIONINFO
-
 #endif
-
-  FILEVERSION		2,3,0,0
-
-  PRODUCTVERSION	2,3,0,0
-
+  FILEVERSION		VER_FILEVERSION
+  PRODUCTVERSION	VER_FILEVERSION
   FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK
-
 #ifdef _DEBUG
-
   FILEFLAGS		VS_FF_DEBUG
-
 #else
-
   FILEFLAGS		0
-
 #endif
-
   FILEOS		VOS_NT_WINDOWS32
-
   FILETYPE		VFT_APP
-
   FILESUBTYPE	        VFT2_UNKNOWN
-
 BEGIN
-
   BLOCK "StringFileInfo"
-
   BEGIN
-
     BLOCK "040904E4"
-
     //language ID = U.S. English, char set = Windows, Multilingual
-
     BEGIN
-
       VALUE "FileDescription",	"zint barcode generator\0"
-
-      VALUE "FileVersion",	"2.3.0.0\0"
-
+      VALUE "FileVersion",	VER_FILEVERSION_STR
       VALUE "InternalName",	"zint.exe\0"
-
-      VALUE "LegalCopyright",	"Copyright � 2009 Robin Stuart & BogDan Vatra\0"
-
+      VALUE "LegalCopyright",	"Copyright � 2020 Robin Stuart & BogDan Vatra\0"
       VALUE "OriginalFilename",	"zint.exe\0"
-
       VALUE "ProductName",	"zint\0"
-
-      VALUE "ProductVersion",	"2.3.0.0\0"
-
+      VALUE "ProductVersion",	VER_FILEVERSION_STR
       VALUE "License",  "GNU General Public License version 3\0"
-
       VALUE "WWW", "http://www.sourceforge.net/projects/zint\0"      
-
     END
-
   END
-
   BLOCK "VarFileInfo"
-
   BEGIN
-
     VALUE "Translation", 0x0409, 1250
-
   END
-
 END
-
-100 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "zint_black.ico"
\ No newline at end of file
+100 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "zint_black.ico"
diff --git a/frontend_qt/frontend_qt.pro b/frontend_qt/frontend_qt.pro
index ba5f88fa..9b58dbb3 100644
--- a/frontend_qt/frontend_qt.pro
+++ b/frontend_qt/frontend_qt.pro
@@ -56,6 +56,8 @@ TRANSLATIONS = frontend_de.ts
 
 RESOURCES += resources.qrc
 
+RC_FILE += res/qtZint.rc
+
 # Static target following http://qt-project.org/wiki/Build_Standalone_Qt_Application_for_Windows
 CONFIG += static
 
diff --git a/frontend_qt/frontend_qt_zintdll.pro b/frontend_qt/frontend_qt_zintdll.pro
index 6daf6320..b79178ba 100644
--- a/frontend_qt/frontend_qt_zintdll.pro
+++ b/frontend_qt/frontend_qt_zintdll.pro
@@ -48,6 +48,8 @@ SOURCES += barcodeitem.cpp \
         
 RESOURCES += resources.qrc
 
+RC_FILE += res/qtZint.rc
+
 INCLUDEPATH += ../backend_qt ../backend
 
 LIBS += -lQtZintDLL -lzint
diff --git a/frontend_qt/mainwindow.cpp b/frontend_qt/mainwindow.cpp
index 61d6e0f0..d6ba187d 100644
--- a/frontend_qt/mainwindow.cpp
+++ b/frontend_qt/mainwindow.cpp
@@ -281,15 +281,23 @@ bool MainWindow::save()
 
 void MainWindow::about()
 {
+    QString zint_version;
+    if (ZINT_VERSION_BUILD) {
+        QTextStream(&zint_version) << ZINT_VERSION_MAJOR << "." << ZINT_VERSION_MINOR << "." << ZINT_VERSION_RELEASE << "." << ZINT_VERSION_BUILD;
+    } else {
+        QTextStream(&zint_version) << ZINT_VERSION_MAJOR << "." << ZINT_VERSION_MINOR << "." << ZINT_VERSION_RELEASE;
+    }
+
     QMessageBox::about(this, tr("About Zint"),
-       tr("<h2>Zint Barcode Studio 2.9.0 </h2>"
+        /*: %1 is Zint version, %2 is Qt version */
+        tr("<h2>Zint Barcode Studio %1</h2>"
            "<p>A free barcode generator"
            "<p>Instruction manual is available at the project homepage:<br>"
            "<a href=\"http://www.zint.org.uk\">http://www.zint.org.uk</a>"
            "<p>Copyright &copy; 2006-2020 Robin Stuart and others.<br>"
            "Qt back end by BogDan Vatra<br>"
            "Windows port by Harald Oehlmann</p>"
-           "<p>Qt version " QT_VERSION_STR
+           "<p>Qt version %2"
            "<p>With thanks to Norbert Szab&oacute;, Robert Elliott, "
                "Milton Neal, Git Lost and many others at Sourceforge."
            "<p>Released under the GNU General Public License ver. 3 or later.<br>"
@@ -302,7 +310,7 @@ void MainWindow::about()
            "ISO/IEC 24724:2011, ISO/IEC 24728:2006, ISO/IEC 24778:2008,<br>"
            "ISO/IEC 21471:2019, ANSI-HIBC 2.3-2009, ANSI/AIM BC6-2000,<br>"
            "ANSI/AIM BC12-1998, AIMD014 (v 1.63), USPS-B-3200"
-           "</small></td></tr></table>"));
+           "</small></td></tr></table>").arg(zint_version).arg(QT_VERSION_STR));
 }
 
 int MainWindow::open_data_dialog()
diff --git a/frontend_qt/res/qtZint.rc b/frontend_qt/res/qtZint.rc
index 5a23c6d8..d2ab4a91 100644
--- a/frontend_qt/res/qtZint.rc
+++ b/frontend_qt/res/qtZint.rc
@@ -5,6 +5,8 @@
 #include <winver.h>
 
 
+#define VER_FILEVERSION        2,9,1,9
+#define VER_FILEVERSION_STR    "2,9,1,9\0"
 
 #ifdef GCC_WINDRES
 
@@ -16,9 +18,9 @@ VS_VERSION_INFO VERSIONINFO
 
 #endif
 
- FILEVERSION 2,3,0,0
+ FILEVERSION VER_FILEVERSION
 
- PRODUCTVERSION 2,3,0,0
+ PRODUCTVERSION VER_FILEVERSION
 
   FILEFLAGSMASK		VS_FFI_FILEFLAGSMASK
 
@@ -52,11 +54,11 @@ BEGIN
 
             VALUE "FileDescription", "qtZint barcode generator"
 
-            VALUE "FileVersion", "2.3.2.0"
+            VALUE "FileVersion", VER_FILEVERSION_STR
 
             VALUE "InternalName", "qtZint"
 
-            VALUE "LegalCopyright", "Copyright � 2010 Robin Stuart & BogDan Vatra"
+            VALUE "LegalCopyright", "Copyright � 2020 Robin Stuart & BogDan Vatra"
 
             VALUE "License", "GNU General Public License version 3"
 
@@ -64,7 +66,7 @@ BEGIN
 
             VALUE "ProductName", "Zint Barcode Studio"
 
-            VALUE "ProductVersion", "2.3.2.0"
+            VALUE "ProductVersion", VER_FILEVERSION_STR
 
             VALUE "WWW", "http://www.zint.org.uk"
 
@@ -82,4 +84,4 @@ BEGIN
 
 END
 
-100 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "zint.ico"
\ No newline at end of file
+100 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "zint.ico"
diff --git a/tools/update_version.php b/tools/update_version.php
new file mode 100644
index 00000000..66783551
--- /dev/null
+++ b/tools/update_version.php
@@ -0,0 +1,263 @@
+<?php
+/* Update Zint version number in various files */
+/*
+    libzint - the open source barcode library
+    Copyright (C) 2008-2019 Robin Stuart <rstuart114@gmail.com>
+*/
+/* Run from project directory
+ *
+ *      php tools/update_version.php ZINT_VERSION_MAJOR ZINT_VERSION_MINOR ZINT_VERSION_RELEASE [ZINT_VERSION_BUILD]
+ *
+ * e.g. before release
+ *      php tools/update_version.php 3 4 5
+ * after release
+ *      php tools/update_version.php 3 4 5 9
+ */
+/* vim: set ts=4 sw=4 et : */
+
+$basename = basename(__FILE__);
+$dirname = dirname(__FILE__);
+
+$data_dirname = $dirname . '/../';
+
+if ($argc < 4) {
+    exit("$basename: ZINT_VERSION_MAJOR ZINT_VERSION_MINOR ZINT_VERSION_RELEASE [ZINT_VERSION_BUILD]" . PHP_EOL);
+}
+
+$major = $argv[1];
+$minor = $argv[2];
+$release = $argv[3];
+$build = $argc > 4 ? $argv[4] : "0";
+if (!ctype_digit($major) || !ctype_digit($minor) || !ctype_digit($release) || !ctype_digit($build)) {
+    exit("$basename: ZINT_VERSION_MAJOR ZINT_VERSION_MINOR ZINT_VERSION_RELEASE [ZINT_VERSION_BUILD] must be numeric" . PHP_EOL);
+}
+$major = (int) $major;
+$minor = (int) $minor;
+$release = (int) $release;
+$build = (int) $build;
+if ($major === 0) {
+    exit("$basename: ZINT_VERSION_MAJOR zero" . PHP_EOL);
+}
+if ($build && $build !== 9) {
+    exit("$basename: ZINT_VERSION_BUILD not 9" . PHP_EOL);
+}
+
+$v_base_str = $v_str = "$major.$minor.$release";
+if ($build) {
+    $v_str .= ".$build";
+}
+$rc_str = "$major,$minor,$release,$build";
+
+function version_replace($to_do, $file, $match_pattern, $replace_pattern, $replace_str) {
+    global $basename;
+
+    if (($get = file_get_contents($file)) === false) {
+        exit("$basename: ERROR: Could not read file \"$file\"" . PHP_EOL);
+    }
+
+    $lines = explode("\n", $get);
+    $done = 0;
+    foreach ($lines as $li => $line) {
+        if (preg_match($match_pattern, $line)) {
+            $cnt = 0;
+            $lines[$li] = preg_replace($replace_pattern, $replace_str, $line, 1, $cnt);
+            if ($cnt === 0 || $lines[$li] === NULL) {
+                exit("$basename: ERROR: Could not replace \"$match_pattern\" in file \"$file\"" . PHP_EOL);
+            }
+            $done++;
+        }
+        if ($done === $to_do) {
+            break;
+        }
+    }
+    if ($done !== $to_do) {
+        exit("$basename: ERROR: Only did $done replacements of $to_do in file \"$file\"" . PHP_EOL);
+    }
+    if (!file_put_contents($file, implode("\n", $lines))) {
+        exit("$basename: ERROR: Could not write file \"$file\"" . PHP_EOL);
+    }
+}
+
+function rc_replace($file, $rc_str) {
+    global $basename;
+
+    if (($get = file_get_contents($file)) === false) {
+        exit("$basename: ERROR: Could not read file \"$file\"" . PHP_EOL);
+    }
+
+    $lines = explode("\n", $get);
+    $done = 0;
+    foreach ($lines as $li => $line) {
+        if (preg_match('/#define[ \t]+VER_FILEVERSION/', $line)) {
+            $cnt = 0;
+            $lines[$li] = preg_replace('/[0-9,]+/', $rc_str, $line, 1, $cnt);
+            if ($cnt === 0 || $lines[$li] === NULL) {
+                exit("$basename: ERROR: Could not replace \"$match_pattern\" in file \"$file\"" . PHP_EOL);
+            }
+            $done++;
+        }
+        if ($done === 2) {
+            break;
+        }
+    }
+    if ($done !== 2) {
+        exit("$basename: ERROR: Only did $done replacements of 2 in file \"$file\"" . PHP_EOL);
+    }
+    if (!file_put_contents($file, implode("\n", $lines))) {
+        exit("$basename: ERROR: Could not write file \"$file\"" . PHP_EOL);
+    }
+}
+
+// CMakeLists.txt
+
+$file = $data_dirname . 'CMakeLists.txt';
+
+if (($get = file_get_contents($file)) === false) {
+    exit("$basename: ERROR: Could not read file \"$file\"" . PHP_EOL);
+}
+
+$lines = explode("\n", $get);
+$done = 0;
+foreach ($lines as $li => $line) {
+    if (preg_match('/\(ZINT_VERSION_(MAJOR|MINOR|RELEASE)/', $line, $matches)) {
+        $cnt = 0;
+        $mmr = $matches[1] === "MAJOR" ? $major : ($matches[1] === "MINOR" ? $minor : $release);
+        $lines[$li] = preg_replace('/[0-9]+\)/', $mmr . ')', $line, 1, $cnt);
+        if ($cnt === 0 || $lines[$li] === NULL) {
+            exit("$basename: ERROR: Could not replace ZINT_VERSION_{$matches[1]} in file \"$file\"" . PHP_EOL);
+        }
+        $done++;
+    } elseif (preg_match('/\(ZINT_VERSION_BUILD/', $line)) {
+        $cnt = 0;
+        $lines[$li] = preg_replace('/"\.?[0-9]*"\)/', '"' . ($build ? ".$build" : '') . '")', $line, 1, $cnt);
+        if ($cnt === 0 || $lines[$li] === NULL) {
+            exit("$basename: ERROR: Could not replace ZINT_VERSION_BUILD in file \"$file\"" . PHP_EOL);
+        }
+        $done++;
+    }
+    if ($done === 4) {
+        break;
+    }
+}
+if ($done !== 4) {
+    exit("$basename: ERROR: Only did $done replacements of 4 in file \"$file\"" . PHP_EOL);
+}
+if (!file_put_contents($file, implode("\n", $lines))) {
+    exit("$basename: ERROR: Could not write file \"$file\"" . PHP_EOL);
+}
+
+// zint.spec
+
+version_replace(1, $data_dirname . 'zint.spec', '/^Version:/', '/[0-9.]+/', $v_base_str);
+
+// zint.nsi
+
+version_replace(1, $data_dirname . 'zint.nsi', '/^!define +PRODUCT_VERSION/', '/"[0-9.]+"/', '"' . $v_str . '"');
+
+// backend/libzint.rc
+
+rc_replace($data_dirname . 'backend/libzint.rc', $rc_str);
+
+// backend/zint.h
+
+$file = $data_dirname . 'backend/zint.h';
+
+if (($get = file_get_contents($file)) === false) {
+    exit("$basename: ERROR: Could not read file \"$file\"" . PHP_EOL);
+}
+
+$lines = explode("\n", $get);
+$done = 0;
+foreach ($lines as $li => $line) {
+    if (preg_match('/define[ \t]+ZINT_VERSION_(MAJOR|MINOR|RELEASE)[ \t]+/', $line, $matches)) {
+        $cnt = 0;
+        $mmr = $matches[1] === "MAJOR" ? $major : ($matches[1] === "MINOR" ? $minor : $release);
+        $lines[$li] = preg_replace('/[0-9]+/', $mmr, $line, 1, $cnt);
+        if ($cnt === 0 || $lines[$li] === NULL) {
+            exit("$basename: ERROR: Could not replace ZINT_VERSION_{$matches[1]} in file \"$file\"" . PHP_EOL);
+        }
+        $done++;
+    } elseif (preg_match('/define[ \t]+ZINT_VERSION_BUILD[ \t]+/', $line)) {
+        $cnt = 0;
+        $lines[$li] = preg_replace('/(BUILD[ \t]+)[0-9]+/', '${1}' . $build, $line, 1, $cnt);
+        if ($cnt === 0 || $lines[$li] === NULL) {
+            exit("$basename: ERROR: Could not replace ZINT_VERSION_BUILD in file \"$file\"" . PHP_EOL);
+        }
+        $done++;
+    }
+    if ($done === 4) {
+        break;
+    }
+}
+if ($done !== 4) {
+    exit("$basename: ERROR: Only did $done replacements of 4 in file \"$file\"" . PHP_EOL);
+}
+if (!file_put_contents($file, implode("\n", $lines))) {
+    exit("$basename: ERROR: Could not write file \"$file\"" . PHP_EOL);
+}
+
+// backend/Makefile.mingw
+
+version_replace(1, $data_dirname . 'backend/Makefile.mingw', '/^ZINT_VERSION:=-DZINT_VERSION=/', '/[0-9.]+/', $v_str);
+
+// backend_qt/backend_vc8.pro
+
+version_replace(1, $data_dirname . 'backend_qt/backend_vc8.pro', '/^VERSION[ \t]*=/', '/[0-9.]+/', $v_str);
+
+// backend_qt/backend_qt.pro
+
+version_replace(1, $data_dirname . 'backend_qt/backend_qt.pro', '/ZINT_VERSION="/', '/[0-9.]+/', $v_str);
+version_replace(1, $data_dirname . 'backend_qt/backend_qt.pro', '/^VERSION[ \t]*=/', '/[0-9.]+/', $v_str);
+
+// backend_tcl/zint.c
+
+version_replace(1, $data_dirname . 'backend_tcl/zint.c', '/#define[ \t]+VERSION[ \t]+"/', '/[0-9.]+/', $v_str);
+
+// frontend/zint.rc
+
+rc_replace($data_dirname . 'frontend/zint.rc', $rc_str);
+
+// frontend/Makefile.mingw
+
+version_replace(1, $data_dirname . 'frontend/Makefile.mingw', '/^ZINT_VERSION:=-DZINT_VERSION=/', '/[0-9.]+/', $v_str);
+
+// frontend_qt/res/qtZint.rc
+
+rc_replace($data_dirname . 'frontend_qt/res/qtZint.rc', $rc_str);
+
+// win32/libzint.vcxproj
+
+version_replace(2, $data_dirname . 'win32/libzint.vcxproj', '/ZINT_VERSION="/', '/ZINT_VERSION="[0-9.]+"/', 'ZINT_VERSION="' . $v_str . '"');
+
+// win32/zint.vcxproj
+
+version_replace(2, $data_dirname . 'win32/zint.vcxproj', '/ZINT_VERSION="/', '/ZINT_VERSION="[0-9.]+"/', 'ZINT_VERSION="' . $v_str . '"');
+
+// win32/zint_cmdline_vc6/zint.rc
+
+rc_replace($data_dirname . 'win32/zint_cmdline_vc6/zint.rc', $rc_str);
+
+// win32/vs2008/libzint.vcproj
+
+version_replace(3, $data_dirname . 'win32/vs2008/libzint.vcproj', '/ZINT_VERSION=&quot;/', '/&quot;[0-9.]+/', '&quot;' . $v_str);
+
+// win32/vs2008/zint.vcproj 
+
+version_replace(3, $data_dirname . 'win32/vs2008/zint.vcproj', '/ZINT_VERSION=&quot;/', '/&quot;[0-9.]+/', '&quot;' . $v_str);
+
+// win32/vs2015/libzint.vcxproj
+
+version_replace(6, $data_dirname . 'win32/vs2015/libzint.vcxproj', '/ZINT_VERSION="/', '/ZINT_VERSION="[0-9.]+"/', 'ZINT_VERSION="' . $v_str . '"');
+
+// win32/vs2015/zint.vcxproj
+
+version_replace(6, $data_dirname . 'win32/vs2015/zint.vcxproj', '/ZINT_VERSION="/', '/ZINT_VERSION="[0-9.]+"/', 'ZINT_VERSION="' . $v_str . '"');
+
+// win32/vs2015/vsx/libzintMD.vcxproj
+
+version_replace(1, $data_dirname . 'win32/vs2015/vsx/libzintMD.vcxproj', '/ZINT_VERSION="/', '/ZINT_VERSION="[0-9.]+"/', 'ZINT_VERSION="' . $v_str . '"');
+
+// Leaving auto-generated files:
+//  backend_tcl/configure (PACKAGE_VERSION and PACKAGE_STRING)
+//  frontend_qt/Inno_Setup_qtzint.iss (MyAppVersion)
+//  win32/zint_cmdline_vc6/zint_cmdline_vc6.dsp (2 ZINT_VERSION's)
diff --git a/win32/libzint.vcxproj b/win32/libzint.vcxproj
index 5e20b452..fa17376f 100644
--- a/win32/libzint.vcxproj
+++ b/win32/libzint.vcxproj
@@ -57,7 +57,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\zlib\;..\..\lpng\;..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.0";BUILD_ZINT_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";BUILD_ZINT_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <ExceptionHandling />
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -92,7 +92,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <AdditionalIncludeDirectories>..\..\zlib\;..\..\lpng\;..\..\lpng\build;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.0";BUILD_ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";BUILD_ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -181,7 +181,6 @@
     <ClInclude Include="..\backend\code49.h" />
     <ClInclude Include="..\backend\common.h" />
     <ClInclude Include="..\backend\composite.h" />
-    <ClInclude Include="..\backend\dm200.h" />
     <ClInclude Include="..\backend\dmatrix.h" />
     <ClInclude Include="..\backend\eci.h" />
     <ClInclude Include="..\backend\emf.h" />
@@ -194,14 +193,12 @@
     <ClInclude Include="..\backend\hanxin.h" />
     <ClInclude Include="..\backend\large.h" />
     <ClInclude Include="..\backend\maxicode.h" />
-    <ClInclude Include="..\backend\maxipng.h" />
     <ClInclude Include="..\backend\ms_stdint.h" />
     <ClInclude Include="..\backend\output.h" />
     <ClInclude Include="..\backend\pcx.h" />
     <ClInclude Include="..\backend\pdf417.h" />
     <ClInclude Include="..\backend\qr.h" />
     <ClInclude Include="..\backend\reedsol.h" />
-    <ClInclude Include="..\backend\resource.h" />
     <ClInclude Include="..\backend\rss.h" />
     <ClInclude Include="..\backend\sjis.h" />
     <ClInclude Include="..\backend\stdint_msvc.h" />
diff --git a/win32/vs2008/libzint.vcproj b/win32/vs2008/libzint.vcproj
index b1089df7..77dd7766 100644
--- a/win32/vs2008/libzint.vcproj
+++ b/win32/vs2008/libzint.vcproj
@@ -42,7 +42,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories="..\..\..\support\lpng169;&quot;..\..\zlib128-dll\include&quot;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.4.4\&quot;&quot;;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG"
 				MinimalRebuild="true"
 				ExceptionHandling="0"
 				BasicRuntimeChecks="3"
@@ -127,7 +127,7 @@
 				Optimization="2"
 				EnableIntrinsicFunctions="false"
 				AdditionalIncludeDirectories="..\..\..\support\lpng169;&quot;..\..\zlib128-dll\include&quot;"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.4.4\&quot;&quot;;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL"
 				StringPooling="true"
 				ExceptionHandling="0"
 				RuntimeLibrary="2"
@@ -212,7 +212,7 @@
 				Optimization="2"
 				EnableIntrinsicFunctions="false"
 				AdditionalIncludeDirectories="d:\opt\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.4.4\&quot;&quot;"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;"
 				StringPooling="true"
 				ExceptionHandling="0"
 				RuntimeLibrary="2"
@@ -275,6 +275,14 @@
 				RelativePath="..\backend\aztec.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\bmp.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\codablock.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\code.c"
 				>
@@ -319,6 +327,34 @@
 				RelativePath="..\backend\dmatrix.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\dotcode.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\eci.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\emf.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\gb18030.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\gb2312.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\general_field.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\gif.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\gridmtx.c"
 				>
@@ -327,6 +363,10 @@
 				RelativePath="..\backend\gs1.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\hanxin.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\imail.c"
 				>
@@ -339,6 +379,10 @@
 				RelativePath="..\backend\library.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\mailmark.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\maxicode.c"
 				>
@@ -347,6 +391,14 @@
 				RelativePath="..\backend\medical.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\output.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\pcx.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\pdf417.c"
 				>
@@ -371,16 +423,20 @@
 				RelativePath="..\backend\qr.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\raster.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\reedsol.c"
 				>
 			</File>
 			<File
-				RelativePath="..\backend\render.c"
+				RelativePath="..\backend\rss.c"
 				>
 			</File>
 			<File
-				RelativePath="..\backend\rss.c"
+				RelativePath="..\backend\sjis.c"
 				>
 			</File>
 			<File
@@ -391,10 +447,22 @@
 				RelativePath="..\backend\telepen.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\tif.c"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\ultra.c"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\upcean.c"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\vector.c"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Header Files"
@@ -413,6 +481,10 @@
 				RelativePath="..\backend\code1.h"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\code128.h"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\code49.h"
 				>
@@ -426,21 +498,33 @@
 				>
 			</File>
 			<File
-				RelativePath="..\backend\dm200.h"
+				RelativePath="..\backend\dmatrix.h"
 				>
 			</File>
 			<File
-				RelativePath="..\backend\dmatrix.h"
+				RelativePath="..\backend\eci.h"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\emf.h"
 				>
 			</File>
 			<File
 				RelativePath="..\backend\font.h"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\gb18030.h"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\gb2312.h"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\general_field.h"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\gridmtx.h"
 				>
@@ -449,6 +533,10 @@
 				RelativePath="..\backend\gs1.h"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\hanxin.h"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\large.h"
 				>
@@ -458,11 +546,15 @@
 				>
 			</File>
 			<File
-				RelativePath="..\backend\maxipng.h"
+				RelativePath="..\backend\ms_stdint.h"
 				>
 			</File>
 			<File
-				RelativePath="..\backend\ms_stdint.h"
+				RelativePath="..\backend\output.h"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\pcx.h"
 				>
 			</File>
 			<File
@@ -477,10 +569,6 @@
 				RelativePath="..\backend\reedsol.h"
 				>
 			</File>
-			<File
-				RelativePath="..\backend\resource.h"
-				>
-			</File>
 			<File
 				RelativePath="..\backend\rss.h"
 				>
@@ -489,6 +577,14 @@
 				RelativePath="..\backend\sjis.h"
 				>
 			</File>
+			<File
+				RelativePath="..\backend\stdint_msvc.h"
+				>
+			</File>
+			<File
+				RelativePath="..\backend\tif.h"
+				>
+			</File>
 			<File
 				RelativePath="..\backend\zint.h"
 				>
diff --git a/win32/vs2008/zint.vcproj b/win32/vs2008/zint.vcproj
index ef6c046a..48da4fdb 100644
--- a/win32/vs2008/zint.vcproj
+++ b/win32/vs2008/zint.vcproj
@@ -42,7 +42,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories="..\backend"
-				PreprocessorDefinitions="WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.3.0\&quot;&quot;;ZINT_DLL"
+				PreprocessorDefinitions="WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;;ZINT_DLL"
 				MinimalRebuild="true"
 				ExceptionHandling="0"
 				BasicRuntimeChecks="3"
@@ -115,7 +115,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				AdditionalIncludeDirectories="..\backend"
-				PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.3.0\&quot;&quot;;ZINT_DLL"
+				PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;;ZINT_DLL"
 				StringPooling="true"
 				ExceptionHandling="0"
 				RuntimeLibrary="0"
@@ -187,7 +187,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				AdditionalIncludeDirectories="..\backend"
-				PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.3.0\&quot;&quot;"
+				PreprocessorDefinitions="WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION=&quot;\&quot;2.9.1.9\&quot;&quot;"
 				StringPooling="true"
 				ExceptionHandling="0"
 				RuntimeLibrary="2"
diff --git a/win32/vs2015/libzint.vcxproj b/win32/vs2015/libzint.vcxproj
index 36016868..2c9d85fd 100644
--- a/win32/vs2015/libzint.vcxproj
+++ b/win32/vs2015/libzint.vcxproj
@@ -115,7 +115,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\extern\libpng\include;..\extern\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.6.0";NO_PNG;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";NO_PNG;BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <ExceptionHandling />
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -148,7 +148,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\extern\libpng\include;..\extern\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>NO_PNG;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.6.0";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>NO_PNG;WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>
       </ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -182,7 +182,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <AdditionalIncludeDirectories>..\extern\libpng\include;..\extern\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.6.0";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";BUILD_ZINT_DLL;ZLIB_DLL;PNG_DLL;NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -216,7 +216,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <AdditionalIncludeDirectories>..\extern\libpng\include;..\extern\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.6.0";BUILD_ZINT_DLL;NO_PNG;ZLIB_DLL;PNG_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";BUILD_ZINT_DLL;NO_PNG;ZLIB_DLL;PNG_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling>
       </ExceptionHandling>
@@ -252,7 +252,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <AdditionalIncludeDirectories>d:\opt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.4.4";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -276,7 +276,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <AdditionalIncludeDirectories>..\extern\libpng\include;..\extern\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.4.4";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling>
       </ExceptionHandling>
@@ -360,7 +360,6 @@
     <ClInclude Include="..\backend\code49.h" />
     <ClInclude Include="..\backend\common.h" />
     <ClInclude Include="..\backend\composite.h" />
-    <ClInclude Include="..\backend\dm200.h" />
     <ClInclude Include="..\backend\dmatrix.h" />
     <ClInclude Include="..\backend\eci.h" />
     <ClInclude Include="..\backend\emf.h" />
@@ -373,14 +372,12 @@
     <ClInclude Include="..\backend\hanxin.h" />
     <ClInclude Include="..\backend\large.h" />
     <ClInclude Include="..\backend\maxicode.h" />
-    <ClInclude Include="..\backend\maxipng.h" />
     <ClInclude Include="..\backend\ms_stdint.h" />
     <ClInclude Include="..\backend\output.h" />
     <ClInclude Include="..\backend\pcx.h" />
     <ClInclude Include="..\backend\pdf417.h" />
     <ClInclude Include="..\backend\qr.h" />
     <ClInclude Include="..\backend\reedsol.h" />
-    <ClInclude Include="..\backend\resource.h" />
     <ClInclude Include="..\backend\rss.h" />
     <ClInclude Include="..\backend\sjis.h" />
     <ClInclude Include="..\backend\stdint_msvc.h" />
diff --git a/win32/vs2015/vsx/libzintMD.vcxproj b/win32/vs2015/vsx/libzintMD.vcxproj
index 82f4ab3c..2f69c107 100644
--- a/win32/vs2015/vsx/libzintMD.vcxproj
+++ b/win32/vs2015/vsx/libzintMD.vcxproj
@@ -39,7 +39,7 @@
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <AdditionalIncludeDirectories>d:\opt1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.4.0";NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";NO_PNG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling>
       </ExceptionHandling>
@@ -71,6 +71,8 @@
     <ClCompile Include="..\..\backend\2of5.c" />
     <ClCompile Include="..\..\backend\auspost.c" />
     <ClCompile Include="..\..\backend\aztec.c" />
+    <ClCompile Include="..\..\backend\bmp.c" />
+    <ClCompile Include="..\..\backend\codablock.c" />
     <ClCompile Include="..\..\backend\code.c" />
     <ClCompile Include="..\..\backend\code1.c" />
     <ClCompile Include="..\..\backend\code128.c" />
@@ -82,48 +84,72 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_LIB|Win32'">true</ExcludedFromBuild>
     </ClCompile>
     <ClCompile Include="..\..\backend\dmatrix.c" />
+    <ClCompile Include="..\..\backend\dotcode.c" />
+    <ClCompile Include="..\..\backend\eci.c" />
+    <ClCompile Include="..\..\backend\emf.c" />
+    <ClCompile Include="..\..\backend\gb18030.c" />
+    <ClCompile Include="..\..\backend\gb2312.c" />
+    <ClCompile Include="..\..\backend\general_field.c" />
+    <ClCompile Include="..\..\backend\gif.c" />
     <ClCompile Include="..\..\backend\gridmtx.c" />
     <ClCompile Include="..\..\backend\gs1.c" />
+    <ClCompile Include="..\..\backend\hanxin.c" />
     <ClCompile Include="..\..\backend\imail.c" />
     <ClCompile Include="..\..\backend\large.c" />
     <ClCompile Include="..\..\backend\library.c" />
+    <ClCompile Include="..\..\backend\mailmark.c" />
     <ClCompile Include="..\..\backend\maxicode.c" />
     <ClCompile Include="..\..\backend\medical.c" />
+    <ClCompile Include="..\..\backend\output.c" />
+    <ClCompile Include="..\..\backend\pcx.c" />
     <ClCompile Include="..\..\backend\pdf417.c" />
     <ClCompile Include="..\..\backend\plessey.c" />
     <ClCompile Include="..\..\backend\png.c" />
     <ClCompile Include="..\..\backend\postal.c" />
     <ClCompile Include="..\..\backend\ps.c" />
     <ClCompile Include="..\..\backend\qr.c" />
+    <ClCompile Include="..\..\backend\raster.c" />
     <ClCompile Include="..\..\backend\reedsol.c" />
-    <ClCompile Include="..\..\backend\render.c" />
     <ClCompile Include="..\..\backend\rss.c" />
+    <ClCompile Include="..\..\backend\sjis.c" />
     <ClCompile Include="..\..\backend\svg.c" />
     <ClCompile Include="..\..\backend\telepen.c" />
+    <ClCompile Include="..\..\backend\tif.c" />
+    <ClCompile Include="..\..\backend\ultra.c" />
     <ClCompile Include="..\..\backend\upcean.c" />
+    <ClCompile Include="..\..\backend\vector.c" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\backend\aztec.h" />
+    <ClInclude Include="..\..\backend\bmp.h" />
     <ClInclude Include="..\..\backend\channel_precalcs.h" />
     <ClInclude Include="..\..\backend\code1.h" />
+    <ClInclude Include="..\..\backend\code128.h" />
     <ClInclude Include="..\..\backend\code49.h" />
     <ClInclude Include="..\..\backend\common.h" />
     <ClInclude Include="..\..\backend\composite.h" />
     <ClInclude Include="..\..\backend\dmatrix.h" />
+    <ClInclude Include="..\..\backend\eci.h" />
+    <ClInclude Include="..\..\backend\emf.h" />
     <ClInclude Include="..\..\backend\font.h" />
+    <ClInclude Include="..\..\backend\gb18030.h" />
     <ClInclude Include="..\..\backend\gb2312.h" />
+    <ClInclude Include="..\..\backend\general_field.h" />
     <ClInclude Include="..\..\backend\gridmtx.h" />
     <ClInclude Include="..\..\backend\gs1.h" />
+    <ClInclude Include="..\..\backend\hanxin.h" />
     <ClInclude Include="..\..\backend\large.h" />
     <ClInclude Include="..\..\backend\maxicode.h" />
-    <ClInclude Include="..\..\backend\maxipng.h" />
     <ClInclude Include="..\..\backend\ms_stdint.h" />
+    <ClInclude Include="..\..\backend\output.h" />
+    <ClInclude Include="..\..\backend\pcx.h" />
     <ClInclude Include="..\..\backend\pdf417.h" />
     <ClInclude Include="..\..\backend\qr.h" />
     <ClInclude Include="..\..\backend\reedsol.h" />
-    <ClInclude Include="..\..\backend\resource.h" />
     <ClInclude Include="..\..\backend\rss.h" />
     <ClInclude Include="..\..\backend\sjis.h" />
+    <ClInclude Include="..\..\backend\stdint_msvc.h" />
+    <ClInclude Include="..\..\backend\tif.h" />
     <ClInclude Include="..\..\backend\zint.h" />
   </ItemGroup>
   <ItemGroup>
diff --git a/win32/vs2015/zint.vcxproj b/win32/vs2015/zint.vcxproj
index e5cf4b44..be2e2c8f 100644
--- a/win32/vs2015/zint.vcxproj
+++ b/win32/vs2015/zint.vcxproj
@@ -108,7 +108,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <ExceptionHandling />
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -127,7 +127,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>
       </ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -147,7 +147,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -165,7 +165,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling>
       </ExceptionHandling>
@@ -186,7 +186,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -205,7 +205,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.3.0";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling>
       </ExceptionHandling>
@@ -244,4 +244,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/win32/zint.vcxproj b/win32/zint.vcxproj
index 52e487bc..2b6aae9e 100644
--- a/win32/zint.vcxproj
+++ b/win32/zint.vcxproj
@@ -53,7 +53,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <ExceptionHandling />
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -72,7 +72,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <AdditionalIncludeDirectories>..\backend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.0";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.9.1.9";ZINT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <ExceptionHandling />
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
diff --git a/win32/zint_cmdline_vc6/zint.rc b/win32/zint_cmdline_vc6/zint.rc
index c6f34768..ae887b06 100644
--- a/win32/zint_cmdline_vc6/zint.rc
+++ b/win32/zint_cmdline_vc6/zint.rc
@@ -30,9 +30,12 @@ LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
 // Version
 //
 
+#define VER_FILEVERSION        2,9,1,9
+#define VER_FILEVERSION_STR    "2,9,1,9\0"
+
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,6,7,0
- PRODUCTVERSION 2,6,7,0
+ FILEVERSION VER_FILEVERSION
+ PRODUCTVERSION VER_FILEVERSION
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -50,15 +53,15 @@ BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "zint barcode generator\0"
-            VALUE "FileVersion", "2.6.7.0\0"
+            VALUE "FileVersion", VER_FILEVERSION_STR
             VALUE "InternalName", "zint.exe\0"
-            VALUE "LegalCopyright", "Copyright � 2019 Robin Stuart\0"
+            VALUE "LegalCopyright", "Copyright � 2020 Robin Stuart\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "License", "GNU General Public License version 3\0"
             VALUE "OriginalFilename", "zint.exe\0"
             VALUE "PrivateBuild", "\0"
             VALUE "ProductName", "zint\0"
-            VALUE "ProductVersion", "2.6.7.0\0"
+            VALUE "ProductVersion", VER_FILEVERSION_STR
             VALUE "SpecialBuild", "\0"
             VALUE "WWW", "http://www.sourceforge.net/projects/zint\0"
         END
diff --git a/zint.nsi b/zint.nsi
index a7adc6bd..37c5f15b 100644
--- a/zint.nsi
+++ b/zint.nsi
@@ -10,7 +10,7 @@
 ;******************************************************************************
 !define PRODUCT_NAME "Zint"
 !define PRODUCT_EXE "qtZint.exe"
-!define PRODUCT_VERSION "2.7.1.0"
+!define PRODUCT_VERSION "2.9.1.9"
 !define PRODUCT_WEB_SITE "http://www.zint.org.uk"
 !define PRODUCT_PUBLISHER "Robin Stuart & BogDan Vatra"
 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_EXE}"
@@ -195,7 +195,7 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${PRODUCT_PUBLISHER}"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "${PRODUCT_NAME} Setup"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${PRODUCT_VERSION}"
-VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright � 2010 Robin Stuart & BogDan Vatra"
+VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright � 2020 Robin Stuart & BogDan Vatra"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "License" "GNU General Public License version 3"
 VIAddVersionKey /LANG=${LANG_ENGLISH} "WWW" "${PRODUCT_WEB_SITE}"
 ;******************************************************************************
diff --git a/zint.spec b/zint.spec
index ff7abce2..a4d104b3 100644
--- a/zint.spec
+++ b/zint.spec
@@ -1,5 +1,5 @@
 Name:      zint
-Version:   2.7.1
+Version:   2.9.1
 Release:   2%{?dist}
 Summary:   A barcode generator and library
 License:   GPLv3+