diff --git a/build/symlink.py b/build/symlink.py
index aade2f8..75a3e4e 100755
--- a/build/symlink.py
+++ b/build/symlink.py
@@ -9,6 +9,7 @@
 import errno
 import optparse
 import os.path
+import shutil
 import sys
 
 
@@ -25,11 +26,16 @@
   sources = args[:-1]
   for s in sources:
     t = os.path.join(target, os.path.basename(s))
+    if len(sources) == 1 and not os.path.isdir(target):
+      t = target
     try:
       os.symlink(s, t)
     except OSError, e:
       if e.errno == errno.EEXIST and options.force:
-        os.remove(t)
+        if os.path.isdir(t):
+          shutil.rmtree(t, ignore_errors=True)
+        else:
+          os.remove(t)
         os.symlink(s, t)
       else:
         raise
diff --git a/sky/build/symlink.py b/sky/build/symlink.py
new file mode 100644
index 0000000..c2cfc10
--- /dev/null
+++ b/sky/build/symlink.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import errno
+import optparse
+import os.path
+import shutil
+import sys
+
+
+def main(argv):
+    parser = optparse.OptionParser()
+    parser.add_option('--touch')
+
+    options, args = parser.parse_args(argv[1:])
+    if len(args) != 2:
+        parser.error('Two arguments required.')
+
+    source = os.path.abspath(args[0])
+    target = os.path.abspath(args[1])
+    try:
+        os.symlink(source, target)
+    except OSError, e:
+        if e.errno == errno.EEXIST:
+            os.remove(target)
+            os.symlink(source, target)
+
+    if options.touch:
+        with open(os.path.abspath(options.touch), 'w') as f:
+            pass
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv))
diff --git a/sky/sdk/BUILD.gn b/sky/sdk/BUILD.gn
index e13e38d..2577abf 100644
--- a/sky/sdk/BUILD.gn
+++ b/sky/sdk/BUILD.gn
@@ -125,8 +125,8 @@
 }
 
 action("material_design_icons") {
-  input_dir = "lib/assets/material-design-icons"
-  output_dir = "$root_gen_dir/dart-pkg/sky/lib/assets"
+  source_file = "lib/assets/material-design-icons"
+  target_file = "$root_gen_dir/dart-pkg/sky/lib/assets/material-design-icons"
   stamp = "$target_gen_dir/material_design_icons_linked"
 
   sources = [
@@ -136,11 +136,10 @@
     stamp,
   ]
 
-  script = "//build/symlink.py"
+  script = "//sky/build/symlink.py"
   args = [
-    "--force",
-    rebase_path(input_dir, output_dir),
-    rebase_path(output_dir, root_build_dir),
+    rebase_path(source_file, root_build_dir),
+    rebase_path(target_file, root_build_dir),
     "--touch",
     rebase_path(stamp, root_build_dir),
   ]
diff --git a/sky/tools/roll/roll.py b/sky/tools/roll/roll.py
index e1bab79..af26105 100755
--- a/sky/tools/roll/roll.py
+++ b/sky/tools/roll/roll.py
@@ -97,7 +97,6 @@
     'build/config/ui.gni',
     'build/ls.py',
     'build/module_args/mojo.gni',
-    'build/symlink.py',
     'tools/android/VERSION_LINUX_NDK',
     'tools/android/VERSION_LINUX_SDK',
     'tools/android/VERSION_MACOSX_NDK',
