diff --git a/ghc/compiler/parser/hslexer.flex b/ghc/compiler/parser/hslexer.flex
index 037bee49c31dce64a8c626b31c55a2a4fe0055a3..c18335b64541a470b6f270ae565228304a6c4022 100644
--- a/ghc/compiler/parser/hslexer.flex
+++ b/ghc/compiler/parser/hslexer.flex
@@ -323,14 +323,26 @@ NL  	    	    	[\n\r]
 			      PUSH_STATE(UserPragma);
 			      RETURN(SPECIALISE_UPRAGMA);
 			    }
+<Code,GlaExt>"{-#"{WS}*"speciali"[sz]e {
+			      PUSH_STATE(UserPragma);
+			      RETURN(SPECIALISE_UPRAGMA);
+			    }
 <Code,GlaExt>"{-#"{WS}*"INLINE" {
 			      PUSH_STATE(UserPragma);
 			      RETURN(INLINE_UPRAGMA);
 			    }
+<Code,GlaExt>"{-#"{WS}*"inline" {
+			      PUSH_STATE(UserPragma);
+			      RETURN(INLINE_UPRAGMA);
+			    }
 <Code,GlaExt>"{-#"{WS}*"NOINLINE" {
 			      PUSH_STATE(UserPragma);
 			      RETURN(NOINLINE_UPRAGMA);
 			    }
+<Code,GlaExt>"{-#"{WS}*"notInline" {
+			      PUSH_STATE(UserPragma);
+			      RETURN(NOINLINE_UPRAGMA);
+			    }
 <Code,GlaExt>"{-#"{WS}*"MAGIC_UNFOLDING" {
 			      PUSH_STATE(UserPragma);
 			      RETURN(MAGIC_UNFOLDING_UPRAGMA);
@@ -353,7 +365,7 @@ NL  	    	    	[\n\r]
                               RETURN(SOURCE_UPRAGMA); 
 			    }
 
-<Code,GlaExt>"{-#"{WS}*[A-Z_]+ {
+<Code,GlaExt>"{-#"{WS}*[a-zA-Z_]+ {
     	    	    	      fprintf(stderr, "%s:%d: Warning: Unrecognised pragma '",
     	    	    	        input_filename, hsplineno);
     	    	    	      format_string(stderr, (unsigned char *) yytext, yyleng);