diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index e2c17e1..2ea1488 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -450,14 +450,14 @@
 
   if (use_attr == TRUE) {
     attr_old = getattrs(self->win);
-    wattrset(self->win,attr);
+    (void)wattrset(self->win,attr);
   }
   if (use_xy == TRUE)
     rtn = mvwaddstr(self->win,y,x,str);
   else
     rtn = waddstr(self->win,str);
   if (use_attr == TRUE)
-    wattrset(self->win,attr_old);
+    (void)wattrset(self->win,attr_old);
   return PyCursesCheckERR(rtn, "addstr");
 }
 
@@ -499,14 +499,14 @@
 
   if (use_attr == TRUE) {
     attr_old = getattrs(self->win);
-    wattrset(self->win,attr);
+    (void)wattrset(self->win,attr);
   }
   if (use_xy == TRUE)
     rtn = mvwaddnstr(self->win,y,x,str,n);
   else
     rtn = waddnstr(self->win,str,n);
   if (use_attr == TRUE)
-    wattrset(self->win,attr_old);
+    (void)wattrset(self->win,attr_old);
   return PyCursesCheckERR(rtn, "addnstr");
 }
 
@@ -1140,14 +1140,14 @@
 
   if (use_attr == TRUE) {
     attr_old = getattrs(self->win);
-    wattrset(self->win,attr);
+    (void)wattrset(self->win,attr);
   }
   if (use_xy == TRUE)
     rtn = mvwinsstr(self->win,y,x,str);
   else
     rtn = winsstr(self->win,str);
   if (use_attr == TRUE)
-    wattrset(self->win,attr_old);
+    (void)wattrset(self->win,attr_old);
   return PyCursesCheckERR(rtn, "insstr");
 }
 
@@ -1189,14 +1189,14 @@
 
   if (use_attr == TRUE) {
     attr_old = getattrs(self->win);
-    wattrset(self->win,attr);
+    (void)wattrset(self->win,attr);
   }
   if (use_xy == TRUE)
     rtn = mvwinsnstr(self->win,y,x,str,n);
   else
     rtn = winsnstr(self->win,str,n);
   if (use_attr == TRUE)
-    wattrset(self->win,attr_old);
+    (void)wattrset(self->win,attr_old);
   return PyCursesCheckERR(rtn, "insnstr");
 }
 
