diff --git a/pyopencl/tools.py b/pyopencl/tools.py
index 7b59d4fcd7fb3468bd2b6f96e9212530a520f274..8a25b801e5eeec477eff93a507e8d6589adc0bb9 100644
--- a/pyopencl/tools.py
+++ b/pyopencl/tools.py
@@ -232,7 +232,7 @@ def parse_c_arg(c_arg):
         dtype = np.uint64
     elif tp in ["short", "short int"]: dtype = np.int16
     elif tp in ["unsigned short", "unsigned short int"]: dtype = np.uint16
-    elif tp in ["char"]: dtype = np.int8
+    elif tp in ["char", "signed char"]: dtype = np.int8
     elif tp in ["unsigned char"]: dtype = np.uint8
     elif tp in ["bool"]: dtype = np.bool
     else: