diff --git a/src/modules/Regexp/pike_regexp.c b/src/modules/Regexp/pike_regexp.c
index 466d3a0c296046da726d9e9dda671142fbae1086..b2b285409281d3367c07f5d5780d075efa896445 100644
--- a/src/modules/Regexp/pike_regexp.c
+++ b/src/modules/Regexp/pike_regexp.c
@@ -915,14 +915,16 @@ char           *prog;
 	    if (reginput == regbol)
 		break;
 	    if (*reginput == '\0' ||
-	       ISWORDPART( *(reginput-1) ) || !ISWORDPART( *reginput ) )
+	       ISWORDPART( *((unsigned char *)reginput-1) ) ||
+		!ISWORDPART( *((unsigned char *)reginput) ) )
 		return (0);
 	    break;
 	case WORDEND:
 	    if (*reginput == '\0')
 		break;
 	    if ( reginput == regbol ||
-	       !ISWORDPART( *(reginput-1) ) || ISWORDPART( *reginput ) )
+	       !ISWORDPART( *((unsigned char *)reginput-1) ) ||
+		 ISWORDPART( *((unsigned char *)reginput) ) )
 		return (0);
 	    break;
 	case EXACTLY:{