diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out
index 735084ce91b966620411f14e707d4bfbcf6b4d5b..c81ed25a61251504d4e3474b1d6023517f78520a 100644
--- a/Test/baseResults/vulkan.frag.out
+++ b/Test/baseResults/vulkan.frag.out
@@ -15,7 +15,6 @@ ERROR: 0:19: 'sampler2D' : sampler-constructor second argument must be a scalar
 ERROR: 0:21: 'sampler3D' : sampler-constructor cannot make an array of samplers 
 ERROR: 0:22: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type 
 ERROR: 0:23: 'sampler2D' : sampler-constructor first argument must match type and dimensionality of constructor type 
-ERROR: 0:24: 'sampler2D' : sampler-constructor second argument presence of shadow must match constructor presence of shadow 
 ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D
 ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers 
 ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d
@@ -55,7 +54,7 @@ ERROR: 0:101: 'noise1' : no matching overloaded function found
 ERROR: 0:102: 'noise2' : no matching overloaded function found 
 ERROR: 0:103: 'noise3' : no matching overloaded function found 
 ERROR: 0:104: 'noise4' : no matching overloaded function found 
-ERROR: 54 compilation errors.  No code generated.
+ERROR: 53 compilation errors.  No code generated.
 
 
 ERROR: Linking fragment stage: Only one push_constant block is allowed per stage
diff --git a/Test/vulkan.frag b/Test/vulkan.frag
index 3cfbb82cb6a5ebdc2420170d056700b17e8bd2d2..46c14f314c3019f0cef0d21311e0818755dde88b 100755
--- a/Test/vulkan.frag
+++ b/Test/vulkan.frag
@@ -21,7 +21,7 @@ void badConst()
     sampler3D[4](t3d5, sA[2]);    // ERROR, can't make array
     sampler2D(i2d, s);            // ERROR, image instead of texture
     sampler2D(t3d[1], s);         // ERROR, 3D not 2D
-    sampler2D(t2d, sShadow);      // ERROR, shadow mismatch
+    sampler2D(t2d, sShadow);
     sampler2DShadow(t2d, s);
 }
 
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index ce4e475d182b8cf635b33bfadcbc1779596db7d2..5f4edfe240838147457bd404b6f04cf006a8f5d8 100755
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -2655,19 +2655,12 @@ bool TParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const
     // second argument
     //   * the constructor's second argument must be a scalar of type
     //     *sampler* or *samplerShadow*
-    //   * if the second argument is *samplerShadow* the constructor must be a
-    //     shadow constructor (however, shadow constructors are allowed to have
-    //     a second argument of *sampler*)
     if (  function[1].type->getBasicType() != EbtSampler ||
         ! function[1].type->getSampler().isPureSampler() ||
           function[1].type->isArray()) {
         error(loc, "sampler-constructor second argument must be a scalar type 'sampler'", token, "");
         return true;
     }
-    if (!function.getType().getSampler().shadow && function[1].type->getSampler().shadow) {
-        error(loc, "sampler-constructor second argument presence of shadow must match constructor presence of shadow", token, "");
-        return true;
-    }
 
     return false;
 }