diff --git a/io_scene_fbx/cycles_shader_compat.py b/io_scene_fbx/cycles_shader_compat.py
index ae050ec9ffb519ae4d91e7cddacfc5560c7c7403..e9874d599aeaaf4df2948e46507793713d8cc578 100644
--- a/io_scene_fbx/cycles_shader_compat.py
+++ b/io_scene_fbx/cycles_shader_compat.py
@@ -269,7 +269,7 @@ class CyclesShaderWrapper():
                   self.node_out.inputs["Displacement"])
 
     @staticmethod
-    def _image_create_helper(image, node_dst, sockets_dst):
+    def _image_create_helper(image, node_dst, sockets_dst, use_alpha=False):
         tree = node_dst.id_data
         nodes = tree.nodes
         links = tree.links
@@ -279,7 +279,7 @@ class CyclesShaderWrapper():
         node.location = node_dst.location
         node.location.x -= CyclesShaderWrapper._col_size
         for socket in sockets_dst:
-            links.new(node.outputs["Color"],
+            links.new(node.outputs["Alpha" if use_alpha else "Color"],
                       socket)
         return node
 
@@ -334,7 +334,10 @@ class CyclesShaderWrapper():
     def alpha_image_set(self, image):
         self.node_bsdf_alpha.mute = False
         node = self.node_mix_color_alpha
-        self._image_create_helper(image, node, (node.inputs["Color2"],))
+        # note: use_alpha may need to be configurable
+        # its not always the case that alpha channels use the image alpha
+        # a greyscale image may also be used.
+        self._image_create_helper(image, node, (node.inputs["Color2"],), use_alpha=True)
 
     def alpha_image_set_from_diffuse(self):
         tree = self.node_mix_color_diff.id_data