diff --git a/Test/baseResults/es-link1.frag.out b/Test/baseResults/es-link1.frag.out
new file mode 100644
index 0000000000000000000000000000000000000000..c033e2104404addaa3af524071af32cf6d6a3bd6
--- /dev/null
+++ b/Test/baseResults/es-link1.frag.out
@@ -0,0 +1,48 @@
+es-link1.frag
+Shader version: 100
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp mediump 4-component vector of float)
+0:7        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:7        Function Call: calculateColor( (global mediump 4-component vector of float)
+0:?   Linker Objects
+
+es-link2.frag
+Shader version: 100
+0:? Sequence
+0:5  Function Definition: calculateColor( (global mediump 4-component vector of float)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      Branch: Return with expression
+0:7        vector-scale (temp mediump 4-component vector of float)
+0:7          'varyingColor' (smooth in mediump 4-component vector of float)
+0:7          Constant:
+0:7            0.500000
+0:?   Linker Objects
+0:?     'varyingColor' (smooth in mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 100
+0:? Sequence
+0:5  Function Definition: main( (global void)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      move second child to first child (temp mediump 4-component vector of float)
+0:7        'gl_FragColor' (fragColor mediump 4-component vector of float FragColor)
+0:7        Function Call: calculateColor( (global mediump 4-component vector of float)
+0:5  Function Definition: calculateColor( (global mediump 4-component vector of float)
+0:5    Function Parameters: 
+0:7    Sequence
+0:7      Branch: Return with expression
+0:7        vector-scale (temp mediump 4-component vector of float)
+0:7          'varyingColor' (smooth in mediump 4-component vector of float)
+0:7          Constant:
+0:7            0.500000
+0:?   Linker Objects
+0:?     'varyingColor' (smooth in mediump 4-component vector of float)
+
diff --git a/Test/es-link1.frag b/Test/es-link1.frag
new file mode 100644
index 0000000000000000000000000000000000000000..fe4da41d034df93ca24fccab58d049bae763b610
--- /dev/null
+++ b/Test/es-link1.frag
@@ -0,0 +1,8 @@
+#version 100
+
+mediump vec4 calculateColor();
+
+void main()
+{
+    gl_FragColor = calculateColor();
+}
diff --git a/Test/es-link2.frag b/Test/es-link2.frag
new file mode 100644
index 0000000000000000000000000000000000000000..e7b5a4779b77c88a1e2fccc41faa487991e67b12
--- /dev/null
+++ b/Test/es-link2.frag
@@ -0,0 +1,8 @@
+#version 100
+
+varying mediump vec4 varyingColor;
+
+mediump vec4 calculateColor()
+{
+    return varyingColor * 0.5;
+}
diff --git a/Test/runtests b/Test/runtests
index 6e6524abb5741f37bbf977ff4530543b9bc940c9..d54fb580e82d532ebbc92a994035e5b62879103e 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -96,6 +96,7 @@ function runBulkTest {
 runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom
 runBulkTest noMain.vert mains.frag
 runBulkTest link1.frag link2.frag link3.frag
+runBulkTest es-link1.frag es-link2.frag
 runBulkTest recurse1.vert recurse1.frag recurse2.frag
 runBulkTest 300link.frag
 runBulkTest 300link2.frag