diff --git a/Test/baseResults/numeral.frag.out b/Test/baseResults/numeral.frag.out
index 3180bbdfa373e5a1495dd8cdf2e76e5b8de0cba9..c1e313478b5e8946e72fbf6a39f52e6bf5bfdd13 100644
--- a/Test/baseResults/numeral.frag.out
+++ b/Test/baseResults/numeral.frag.out
@@ -11,7 +11,9 @@ ERROR: 0:50: '' : hexadecimal literal too big
 ERROR: 0:88: '' : float literal needs a decimal point or exponent 
 ERROR: 0:98: '' : numeric literal too big 
 ERROR: 0:101: '' : numeric literal too big 
-ERROR: 12 compilation errors.  No code generated.
+ERROR: 0:104: '#' : preprocessor directive cannot be preceded by another token 
+ERROR: 0:104: '' :  syntax error, unexpected $end, expecting COMMA or SEMICOLON
+ERROR: 14 compilation errors.  No code generated.
 
 
 Shader version: 400
@@ -404,21 +406,6 @@ ERROR: node is still EOpNull!
 0:103      'g6' ( global int)
 0:103      Constant:
 0:103        -2 (const int)
-0:104  Sequence
-0:104    move second child to first child ( temp float)
-0:104      'inf1' ( global float)
-0:104      Constant:
-0:104        -1.#INF
-0:105  Sequence
-0:105    move second child to first child ( temp float)
-0:105      'inf2' ( global float)
-0:105      Constant:
-0:105        +1.#INF
-0:106  Sequence
-0:106    move second child to first child ( temp float)
-0:106      'inf3' ( global float)
-0:106      Constant:
-0:106        +1.#INF
 0:?   Linker Objects
 0:?     'c2' (layout( location=2) out 4-component vector of float)
 0:?     'c3' (layout( location=3) out 4-component vector of float)
@@ -433,8 +420,6 @@ ERROR: node is still EOpNull!
 0:?     'g5' ( global int)
 0:?     'g6' ( global int)
 0:?     'inf1' ( global float)
-0:?     'inf2' ( global float)
-0:?     'inf3' ( global float)
 
 
 Linked fragment stage:
@@ -830,21 +815,6 @@ ERROR: node is still EOpNull!
 0:103      'g6' ( global int)
 0:103      Constant:
 0:103        -2 (const int)
-0:104  Sequence
-0:104    move second child to first child ( temp float)
-0:104      'inf1' ( global float)
-0:104      Constant:
-0:104        -1.#INF
-0:105  Sequence
-0:105    move second child to first child ( temp float)
-0:105      'inf2' ( global float)
-0:105      Constant:
-0:105        +1.#INF
-0:106  Sequence
-0:106    move second child to first child ( temp float)
-0:106      'inf3' ( global float)
-0:106      Constant:
-0:106        +1.#INF
 0:?   Linker Objects
 0:?     'c2' (layout( location=2) out 4-component vector of float)
 0:?     'c3' (layout( location=3) out 4-component vector of float)
@@ -859,6 +829,4 @@ ERROR: node is still EOpNull!
 0:?     'g5' ( global int)
 0:?     'g6' ( global int)
 0:?     'inf1' ( global float)
-0:?     'inf2' ( global float)
-0:?     'inf3' ( global float)
 
diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
index d1ddf68513550fe61767c8232b163f77bb154329..b58bbeeab9d955726b093e783e25d13c83ef2c13 100644
--- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
@@ -128,7 +128,7 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken)
         ch = getChar();
 
         // 1.#INF or -1.#INF
-        if (ch == '#') {
+        if (parseContext.intermediate.getSource() == EShSourceHlsl && ch == '#') {
             if ((len <  2) ||
                 (len == 2 && ppToken->name[0] != '1') ||
                 (len == 3 && ppToken->name[1] != '1' && !(ppToken->name[0] == '-' || ppToken->name[0] == '+')) ||