Fixed CMake symlinking on out-of-source builds
diff --git a/ChangeLog b/ChangeLog
index 9a27f2c..df0ef77 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,7 @@
    * Fix bug in RSA PKCS#1 v1.5 "reversed" operations
    * Fixed testing with out-of-source builds using cmake
    * Fixed version-major intolerance in server
+   * Fixed CMake symlinking on out-of-source builds
 
 = PolarSSL 1.3.4 released on 2014-01-27
 Features
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 74ec5d5..d5b0512 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -93,18 +93,20 @@
     file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/data_files" link)
     file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/data_files" target)
 
-    if (UNIX)
-        set(command ln -s ${target} ${link})
-    else()
-        set(command cmd.exe /c mklink ${link} ${target})
-    endif()
+    if (NOT EXISTS ${link})
+        if (UNIX)
+            set(command ln -s ${target} ${link})
+        else()
+            set(command cmd.exe /c mklink ${link} ${target})
+        endif()
 
-    execute_process(COMMAND ${command}
-                    RESULT_VARIABLE result
-                    ERROR_VARIABLE output)
+        execute_process(COMMAND ${command}
+                        RESULT_VARIABLE result
+                        ERROR_VARIABLE output)
 
-    if (NOT ${result} EQUAL 0)
-        message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}")
+        if (NOT ${result} EQUAL 0)
+            message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}")
+        endif()
     endif()
 endif()