diff --git a/ChangeLog b/ChangeLog
index 309ba8f..094b793 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2019-03-07  Bruno Haible  <bruno@clisp.org>
+
+	Avoid signed integer overflow during shifts.
+	Reported by Jeffrey Walton <noloader@gmail.com>.
+	* lib/tcvn.h (tcvn_wctomb): Use unsigned integer type for bit mask
+	operation.
+	* lib/viscii.h (viscii_wctomb): Likewise.
+
 2019-03-04  Bruno Haible  <bruno@clisp.org>
 
 	Add support for --enable-relocatable to libcharset.
diff --git a/lib/tcvn.h b/lib/tcvn.h
index 44d96ef..87a64d7 100644
--- a/lib/tcvn.h
+++ b/lib/tcvn.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2002, 2004, 2016 Free Software Foundation, Inc.
+ * Copyright (C) 1999-2002, 2004, 2016, 2019 Free Software Foundation, Inc.
  * This file is part of the GNU LIBICONV Library.
  *
  * The GNU LIBICONV Library is free software; you can redistribute it
@@ -217,7 +217,7 @@
 tcvn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
 {
   unsigned char c = 0;
-  if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076 & (1 << wc)) == 0)) {
+  if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076U & (1U << wc)) == 0)) {
     *r = wc;
     return 1;
   }
diff --git a/lib/viscii.h b/lib/viscii.h
index e5c6209..a298e99 100644
--- a/lib/viscii.h
+++ b/lib/viscii.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc.
+ * Copyright (C) 1999-2001, 2016, 2019 Free Software Foundation, Inc.
  * This file is part of the GNU LIBICONV Library.
  *
  * The GNU LIBICONV Library is free software; you can redistribute it
@@ -124,7 +124,7 @@
 viscii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n)
 {
   unsigned char c = 0;
-  if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064 & (1 << wc)) == 0)) {
+  if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064U & (1U << wc)) == 0)) {
     *r = wc;
     return 1;
   }
