diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
index f9efb325ea32f7c58bf310472c7da6592222ded0_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk=..f19d5c852f9be42e9cfe5822c5d5f2fa6c076daf_aGdleHQvbGFyZ2VmaWxlcy9vdmVycmlkZXMucHk= 100644
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -179,6 +179,11 @@
 # matcher which matches only the normal files and runs the original
 # version of add.
 def override_add(orig, ui, repo, *pats, **opts):
+    normal = opts.pop('normal')
+    if normal:
+        if opts.get('large'):
+            raise util.Abort(_('--normal cannot be used with --large'))
+        return orig(ui, repo, *pats, **opts)
     bad = add_largefiles(ui, repo, *pats, **opts)
     installnormalfilesmatchfn(repo[None].manifest())
     result = orig(ui, repo, *pats, **opts)
diff --git a/hgext/largefiles/uisetup.py b/hgext/largefiles/uisetup.py
index f9efb325ea32f7c58bf310472c7da6592222ded0_aGdleHQvbGFyZ2VmaWxlcy91aXNldHVwLnB5..f19d5c852f9be42e9cfe5822c5d5f2fa6c076daf_aGdleHQvbGFyZ2VmaWxlcy91aXNldHVwLnB5 100644
--- a/hgext/largefiles/uisetup.py
+++ b/hgext/largefiles/uisetup.py
@@ -23,6 +23,7 @@
     entry = extensions.wrapcommand(commands.table, 'add',
                                    overrides.override_add)
     addopt = [('', 'large', None, _('add as largefile')),
+              ('', 'normal', None, _('add as normal file')),
               ('', 'lfsize', '', _('add all files above this size '
                                    '(in megabytes) as largefiles '
                                    '(default: 10)'))]
diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t
index f9efb325ea32f7c58bf310472c7da6592222ded0_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ=..f19d5c852f9be42e9cfe5822c5d5f2fa6c076daf_dGVzdHMvdGVzdC1sYXJnZWZpbGVzLnQ= 100644
--- a/tests/test-largefiles.t
+++ b/tests/test-largefiles.t
@@ -768,7 +768,18 @@
   $ hg st
   A sub2/large6-renamed
   R sub2/large6
-  $ cd ../..
+  $ cd ..
+
+Test --normal flag
+
+  $ dd if=/dev/urandom bs=2k count=11k > new-largefile 2> /dev/null
+  $ hg add --normal --large new-largefile
+  abort: --normal cannot be used with --large
+  [255]
+  $ hg add --normal new-largefile
+  new-largefile: up to 69 MB of RAM may be required to manage this file
+  (use 'hg revert new-largefile' to cancel the pending addition)
+  $ cd ..
 
 vanilla clients not locked out from largefiles servers on vanilla repos
   $ mkdir r1