diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
index b357a972d6cd4f1554566e2f3920ab6a2344c310_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk=..b4ea79f8826811706476307ec9ab695241d150ff_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk= 100644
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -87,7 +87,7 @@
 
         if exact or not exists:
             abovemin = (lfsize and
-                        os.path.getsize(repo.wjoin(f)) >= lfsize * 1024 * 1024)
+                        os.lstat(repo.wjoin(f)).st_size >= lfsize * 1024 * 1024)
             if large or abovemin or (lfmatcher and lfmatcher(f)):
                 lfnames.append(f)
                 if ui.verbose or not exact:
diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t
index b357a972d6cd4f1554566e2f3920ab6a2344c310_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ=..b4ea79f8826811706476307ec9ab695241d150ff_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ= 100644
--- a/tests/test-largefiles.t
+++ b/tests/test-largefiles.t
@@ -852,3 +852,26 @@
   1 largefiles updated, 0 removed
   $ cd ..
   $ HOME="$ORIGHOME"
+
+Symlink to a large largefile should behave the same as a symlink to a normal file
+  $ hg init largesymlink
+  $ cd largesymlink
+  $ dd if=/dev/zero bs=1k count=10k of=largefile 2>/dev/null
+  $ hg add --large largefile
+  $ hg commit -m "commit a large file"
+  $ ln -s largefile largelink
+  $ hg add largelink
+  $ hg commit -m "commit a large symlink"
+  $ rm -f largelink
+  $ hg up >/dev/null
+  $ test -e largelink
+  [1]
+  $ test -L largelink
+  [1]
+  $ rm -f largelink # make next part of the test independent of the previous
+  $ hg up -C >/dev/null
+  $ test -e largelink
+  $ test -L largelink
+  $ cd ..
+
+