diff --git a/main/abiword/APKBUILD b/main/abiword/APKBUILD
index 4f4ddbf5cdfab4b58fbaa76d145b238428cafce1..6103d637eeb632ca9e3eab9e916c880a7459ca30 100644
--- a/main/abiword/APKBUILD
+++ b/main/abiword/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=abiword
-pkgver=3.0.1
-pkgrel=1
+pkgver=3.0.2
+pkgrel=0
 pkgdesc="A fully-featured word processor"
 url="http://www.abisource.com"
 arch="all"
@@ -29,7 +29,7 @@ for _i in $_plugins; do
 done
 
 source="http://www.abisource.com/downloads/$pkgname/$pkgver/source/$pkgname-$pkgver.tar.gz
-	"
+	fix-nullptr-c++98.patch"
 
 builddir="$srcdir"/$pkgname-$pkgver
 
@@ -42,14 +42,13 @@ build() {
 		--prefix=/usr \
 		--enable-shared \
 		--disable-static \
-		--enable-plugins \
-		|| return 1
-	make || return 1
+		--enable-plugins
+	make
 }
 
 package() {
 	cd "$builddir"
-	make DESTDIR="$pkgdir" install || return 1
+	make DESTDIR="$pkgdir" install
 }
 
 _do_plugin() {
@@ -73,6 +72,5 @@ plugins() {
 	mkdir -p "$subpkgdir"
 }
 
-md5sums="f3f8052e7b4979a43b75775a381e6cb8  abiword-3.0.1.tar.gz"
-sha256sums="e094f6fbf0afc5c5538b4894888e7c346f8ee8f49c9d24821dd696d0734865c6  abiword-3.0.1.tar.gz"
-sha512sums="c655aabe0ba0a9880f30808e26c02ec3280c750625faa482a68d4d336742f85659a7af7d6413d8813b82d3de0a3f6b61b6f6898f030bb921d792ad866879dbcf  abiword-3.0.1.tar.gz"
+sha512sums="29ce9e80b3b85ab2933e7d39216771d8c4e05db5255eaed0cf8e1d032ffaac2cb1880bf24e754196ad5dae4969a1c2101ce4dc9c1db14604adc2f852b6a17fe3  abiword-3.0.2.tar.gz
+fbfedad9b58ba44fac53142fae77dce499b9d3f01acb2967e6507b94a8206436240e924ae420c1b92f707a0e08df9874c8de034532032cf6d8df9b28dcd8a3cf  fix-nullptr-c++98.patch"
diff --git a/main/abiword/fix-nullptr-c++98.patch b/main/abiword/fix-nullptr-c++98.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f09319693fe47b12ee945a92bd66f4148f652b65
--- /dev/null
+++ b/main/abiword/fix-nullptr-c++98.patch
@@ -0,0 +1,34 @@
+Replace 'nullptr' by NULL in order to allow compiling in C++98 mode.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=599618
+
+--- a/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
++++ b/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
+@@ -180,7 +180,7 @@
+ 	if (m_styleBg) {
+ 		g_object_unref(m_styleBg);
+ 	}
+-	m_styleBg = XAP_GtkStyle_get_style(nullptr, "GtkButton"); // "button"
++	m_styleBg = XAP_GtkStyle_get_style(NULL, "GtkButton"); // "button"
+ 	// guess colours
+ 	// WHITE
+ 	GdkRGBA rgba2;
+@@ -627,7 +627,7 @@
+ 		_setProps();
+ 		cairo_save (m_cr);
+ 
+-		GtkStyleContext *context = nullptr;
++		GtkStyleContext *context = NULL;
+ 		switch(c) {
+ 		case GR_Graphics::CLR3D_Background:
+ 			context = m_styleBg;
+--- a/src/wp/ap/xp/ap_Dialog_Spell.cpp
++++ b/src/wp/ap/xp/ap_Dialog_Spell.cpp
+@@ -251,7 +251,7 @@
+ 					UT_return_val_if_fail (m_Suggestions, false);
+ 
+ 					// get suggestions from spelling engine
+-					const UT_GenericVector<UT_UCSChar*> *cpvEngineSuggestions = nullptr;
++					const UT_GenericVector<UT_UCSChar*> *cpvEngineSuggestions = NULL;
+ 
+ 					if (checker->checkWord(m_pWord, m_iWordLength) == SpellChecker::LOOKUP_FAILED)
+ 					{