diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index 9d4c612..980ff8a 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -662,7 +662,12 @@ class DirDiff(melddoc.MeldDoc, gnomeglade.Component):
                 src = model.value_path(it, src_pane)
                 dst = model.value_path(it, dst_pane)
                 try:
-                    if os.path.isfile(src):
+                    if os.path.islink(src):
+                        if os.path.exists(dst):
+                            os.unlink(dst)
+                        os.symlink(os.readlink(src), dst)
+                        self.file_created(path, dst_pane)
+                    elif os.path.isfile(src):
                         dstdir = os.path.dirname( dst )
                         if not os.path.exists( dstdir ):
                             os.makedirs( dstdir )
