diff --git a/SuperBuild/Packaging/PackageMacros.cmake b/SuperBuild/Packaging/PackageMacros.cmake
index 8f2a704befbfbecac113d28df4a9ce4e5bcb299a..eea19d1d0293c7d8e7672f89e4cacfbacce604d8 100755
--- a/SuperBuild/Packaging/PackageMacros.cmake
+++ b/SuperBuild/Packaging/PackageMacros.cmake
@@ -266,20 +266,23 @@ function(func_is_file_a_symbolic_link file result_var1 result_var2)
   get_filename_component(file_full "${file}" ABSOLUTE)
   string(TOLOWER "${file_full}" file_full_lower)
 
-  # If file name ends in .exe on Windows, *assume* executable.
-  # And If file name ends in .dll on Windows, *assume* libary.
+  # If file name ends in .exe on Windows, *assume* executable:
+  #
   if(WIN32 AND NOT UNIX)
-    if("${file_full_lower}" MATCHES "(\\.exe|\\.dll)$")
-      set(${result_var} 1 PARENT_SCOPE)
+    if("${file_full_lower}" MATCHES "\\.lnk$")
+      set(${result_var1} 1 PARENT_SCOPE)
+      #Assuming the file is linked to a file with same name without .lnk extension
+      get_filename_component(name_we_lnk "${file_full_lower}" NAME_WE)
+      set(${result_var2} "${name_we_lnk}" PARENT_SCOPE)
       return()
     endif()
-    
+
     # A clause could be added here that uses output or return value of dumpbin
     # to determine ${result_var}. In 99%+? practical cases, the exe name
     # match will be sufficient...
     #
   endif()
-  
+
   # Use the information returned from the Unix shell command "file" to
   # determine if ${file_full} should be considered an executable file...
   #