diff --git a/po/POTFILES.in b/po/POTFILES.in
index 5c38666a46a16829fe4b01d8bd49e25bb8e202f3..3a7a3f76e17a6fc80c7ce1ebe7e5bb030437374d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -74,6 +74,7 @@ src/config/file.c
 src/config/help.c
 src/config/intf.c
 src/config/keys.c
+src/darwin/error.c
 src/extras/libc.c
 src/extras/tdestroy.c
 src/input/access.c
diff --git a/src/darwin/error.c b/src/darwin/error.c
index 971934dda9f52cc22e8270e291548d25260fa4a9..e51b912b95acad1633e75ffc96ec02e701c73286 100644
--- a/src/darwin/error.c
+++ b/src/darwin/error.c
@@ -30,14 +30,14 @@
 
 const char *vlc_strerror_c(int errnum)
 {
-    /* C run-time errors */
+    /* We cannot simply use strerror() here, since it is not thread-safe. */
     if ((unsigned)errnum < (unsigned)sys_nerr)
         return sys_errlist[errnum];
 
-    return "Unknown error";
+    return _("Unknown error");
 }
 
 const char *vlc_strerror(int errnum)
 {
-    return vlc_gettext(vlc_strerror_c(errnum));
+    return vlc_strerror_c(errnum);
 }