diff --git a/srcpkgs/e2fsprogs/e2fsprogs-devel.template b/srcpkgs/e2fsprogs/e2fsprogs-devel.template
index fdd10196ec8..f0106674383 100644
--- a/srcpkgs/e2fsprogs/e2fsprogs-devel.template
+++ b/srcpkgs/e2fsprogs/e2fsprogs-devel.template
@@ -5,6 +5,8 @@ long_desc="${long_desc}
 
  This package contains files for development, headers, static libs, etc."
 
+revision=1
+
 Add_dependency run libuuid-devel
 Add_dependency run libblkid-devel
 Add_dependency run e2fsprogs-libs
diff --git a/srcpkgs/e2fsprogs/e2fsprogs-libs.template b/srcpkgs/e2fsprogs/e2fsprogs-libs.template
index 32198a9a791..84815c0dd68 100644
--- a/srcpkgs/e2fsprogs/e2fsprogs-libs.template
+++ b/srcpkgs/e2fsprogs/e2fsprogs-libs.template
@@ -5,6 +5,8 @@ long_desc="${long_desc}
 
  This package contains the shared libraries."
 
+revision=1
+
 Add_dependency run glibc
 Add_dependency run libblkid
 
diff --git a/srcpkgs/e2fsprogs/patches/0001-implement-com_right_r.patch b/srcpkgs/e2fsprogs/patches/0001-implement-com_right_r.patch
new file mode 100644
index 00000000000..892c4833e00
--- /dev/null
+++ b/srcpkgs/e2fsprogs/patches/0001-implement-com_right_r.patch
@@ -0,0 +1,60 @@
+From 527d258d605e5a1dd841bccc6091c0b894a10411 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 27 Jan 2010 16:02:08 +0000
+Subject: [PATCH] implement com_right_r()
+
+For heimdal compat
+---
+ lib/et/com_err.h   |    2 ++
+ lib/et/com_right.c |   14 ++++++++++++++
+ 2 files changed, 16 insertions(+), 0 deletions(-)
+
+diff --git a/lib/et/com_err.h b/lib/et/com_err.h
+index de0146e..eb2106f 100644
+--- lib/et/com_err.h
++++ lib/et/com_err.h
+@@ -16,6 +16,7 @@
+ #define COM_ERR_ATTR(x)
+ #endif
+ 
++#include <stddef.h>
+ #include <stdarg.h>
+ 
+ typedef long errcode_t;
+@@ -49,6 +50,7 @@ extern void add_to_error_table(struct et_list *new_table);
+ 
+ /* Provided for Heimdall compatibility */
+ extern const char *com_right(struct et_list *list, long code);
++extern const char *com_right_r(struct et_list *list, long code, char *str, size_t len);
+ extern void initialize_error_table_r(struct et_list **list,
+ 				     const char **messages,
+ 				     int num_errors,
+diff --git a/lib/et/com_right.c b/lib/et/com_right.c
+index 173fd1a..dbc1e41 100644
+--- lib/et/com_right.c
++++ lib/et/com_right.c
+@@ -55,6 +55,21 @@ com_right(struct et_list *list, long code)
+     return NULL;
+ }
+ 
++const char *
++com_right_r(struct et_list *list, long code, char *str, size_t len)
++{
++    struct et_list *p;
++    for (p = list; p; p = p->next) {
++        if (code >= p->table->base && code < p->table->base + p->table->n_msgs) {
++            strncpy(str, p->table->msgs[code - p->table->base], len);
++            str[len-1] = '\0';
++            return str;
++        }
++    }
++    return NULL;
++}
++
++
+ struct foobar {
+     struct et_list etl;
+     struct error_table tab;
+-- 
+1.6.6.1
+