diff --git a/generators/lib/g5k_generator.rb b/generators/lib/g5k_generator.rb
index 6cea2ed90e522b3a87bc2ea48d0ef7643f599f20..fea3fddd97c1a23b90b1e4881c5c07f901dce55f 100644
--- a/generators/lib/g5k_generator.rb
+++ b/generators/lib/g5k_generator.rb
@@ -121,10 +121,10 @@ class ReferenceGenerator
     groups.has_key?(G5K::Link) and groups[G5K::Link].each do |link|      
       from = File.join(repository, "#{link.from}.json")
       to = File.join(repository, link.path)
-      # Hard links will always be regenerated
-      # TODO: find a way to detect if a link has to be regenerated
-      puts "Hard link to be written = \t#{to} -> #{from}"
-      FileUtils.link(from, to, :force => true) unless options[:simulate]
+      unless File.exists?(to)
+        puts "Hard link to be written = \t#{to} -> #{from}"
+        FileUtils.link(from, to, :force => true) unless options[:simulate]
+      end
     end  
   end