diff --git a/changes.txt b/changes.txt
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,10 @@
+0.1.9.0
+-------
+
+- Released Mon 25 Jan 2016 12:43:48 CET
+- by default, lentil will not recurse on dot folders (directories starting
+  with '.' and '_') (request by Artyom).
+
 0.1.8.0
 -------
 
diff --git a/doc/usr/page.rst b/doc/usr/page.rst
--- a/doc/usr/page.rst
+++ b/doc/usr/page.rst
@@ -89,8 +89,9 @@
 You can specify more than one folder/path with ``lentil foldera folderb ...``
 or exclude folders/paths with ``lentil . -x foldera/sub``.
 
-lentil scans directory recursively, not following symlinks. Current working
-directory is indicated by a single dot (``.``).
+lentil scans directory recursively, not following symlinks, hidden folders
+(``.git``, ``.cabal``, etc.) or folders starting with a ``_``. Current
+working directory is indicated by a single dot (``.``).
 
 .. raw:: html
 
diff --git a/lentil.cabal b/lentil.cabal
--- a/lentil.cabal
+++ b/lentil.cabal
@@ -1,5 +1,5 @@
 name:                lentil
-version:             0.1.8.0
+version:             0.1.9.0
 synopsis:            frugal issue tracker
 description:         minumum effort, cohesive issue tracker based on
                      ubiquitous @TODO@s and @FIXME@s conventions.
@@ -30,11 +30,14 @@
                      test/test-files/lang-comm/text.txt,
                      test/test-files/specific/contiguous.c,
                      test/test-files/specific/uppercase.C,
-                     test/test-files/test-proj/fold-a/foo1.hs,
-                     test/test-files/test-proj/fold-b/foo2.hs,
-                     test/test-files/test-proj/fold-c/foo3.hs,
-                     test/test-files/test-proj/fold-c/sub-fold/foo4.hs,
-                     test/test-files/test-proj/fold-c/sub-fold/foo5.hs
+                     test/test-files/test-proj/base-case/fold-a/foo1.hs,
+                     test/test-files/test-proj/base-case/fold-b/foo2.hs,
+                     test/test-files/test-proj/base-case/fold-c/foo3.hs,
+                     test/test-files/test-proj/base-case/fold-c/sub-fold/foo4.hs,
+                     test/test-files/test-proj/base-case/fold-c/sub-fold/foo5.hs,
+                     test/test-files/test-proj/dot-folders/foo1.hs,
+                     test/test-files/test-proj/dot-folders/.alfa/foo1.hs,
+                     test/test-files/test-proj/dot-folders/_beta/foo1.hs
 extra-doc-files:     README, changes.txt, doc/usr/page.rst, doc/usr/test.zip,
                      issues.txt, contributors.txt
 cabal-version:       >=1.10
@@ -42,7 +45,7 @@
 
 executable lentil
   main-is:             Main.hs
-  build-depends:       base >=4.7 && <4.9, optparse-applicative >=0.11 && <0.12,
+  build-depends:       base >=4.7 && <4.9, optparse-applicative >=0.12 && <0.13,
                        regex-tdfa >=1.2 && <1.3, natural-sort >=0.1 && <0.2,
                        parsec >=3.1 && <3.2, filepath >=1.3 && <1.5,
                        directory >=1.2 && <1.3, filemanip >=0.3 && <0.4,
@@ -59,7 +62,7 @@
   ghc-options:         -Wall
   HS-Source-Dirs:      test, src
   main-is:             Tests.hs
-  build-depends:       base >=4.7 && <4.9, optparse-applicative >=0.11 && <0.12,
+  build-depends:       base >=4.7 && <4.9, optparse-applicative >=0.12 && <0.13,
                        regex-tdfa >=1.2 && <1.3, natural-sort >=0.1 && <0.2,
                        parsec >=3.1 && <3.2, filepath >=1.3 && <1.5,
                        directory >=1.2 && <1.3, filemanip >=0.3 && <0.4,
diff --git a/src/Lentil/File.hs b/src/Lentil/File.hs
--- a/src/Lentil/File.hs
+++ b/src/Lentil/File.hs
@@ -45,7 +45,7 @@
 findIssues :: [Alias] -> [FilePath] -> [FilePath] -> IO [Issue]
 findIssues as is xs = mapM fc is >>= (issueFinder as) . concat
     where
-          fc i = find always (findClause (xs' i)) i
+          fc i = find recPred (findClause (xs' i)) i
 
           xs' "." = map (combine ".") xs -- trick to exclude on '.'
           xs' _   = xs
@@ -60,6 +60,15 @@
           fp2fc f = Any . L.isPrefixOf f <$> filePath
           -- TODO: combine funziona su windows? [feature:intermediate]
 
+
+-- recursion predicate: excludes dot ('.') or _ folders
+recPred :: RecursionPredicate
+recPred = (not . isDotFolder) <$> fileName
+    where
+          isDotFolder "." = False -- not curr dir!
+          isDotFolder fp  | length fp == 0              = False
+                          | L.elem (head fp) ['.', '_'] = True
+          isDotFolder _   = False
 
 -- -- canonicalizePath with exceptions to stderr
 -- canonPaths :: [FilePath] -> IO [FilePath]
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -28,7 +28,7 @@
                                    short 'v'      <>
                                    help "show version and copyright info" )
     where
-          versionCopy = "lentil - frugal issue tracker, version 0.1.8.0\n\
+          versionCopy = "lentil - frugal issue tracker, version 0.1.9.0\n\
                         \(C) 2015 Francesco Ariis - http://www.ariis.it\n\
                         \released under the GNU General Public License v3\n"
 
diff --git a/test/Lentil/FileSpec.hs b/test/Lentil/FileSpec.hs
--- a/test/Lentil/FileSpec.hs
+++ b/test/Lentil/FileSpec.hs
@@ -9,8 +9,11 @@
 main :: IO ()
 main = hspec spec
 
+fld :: String
+fld = "test/test-files/test-proj/"
+
 bas :: String
-bas = "test/test-files/test-proj/"
+bas = fld ++ "base-case/"
 
 spec :: Spec
 spec = do
@@ -42,11 +45,14 @@
       findIssues [] [bas ++ "fold-c/"]
                  [bas ++ "fold-c/sub-fold/"] >>= \fiss ->
       length fiss `shouldBe` 1
+    it "exludes . and _ folders" $
+      findIssues [] [fld ++ "dot-folders/"] [] >>= \fiss ->
+      length fiss `shouldBe` 1
     it "doesn't crash on wrong file" $
       findIssues [] [bas ++ "zxczd"] [] >>= \fiss ->
       length fiss `shouldBe` 0
     it "does search outside $PWD" $
       findIssues [] [bas] []                    >>= \fiss  ->
-      findIssues [] [bas ++ "../test-proj/"] [] >>= \fiss' ->
+      findIssues [] [bas ++ "../base-case/"] [] >>= \fiss' ->
       length fiss `shouldBe` length fiss'
 
diff --git a/test/test-files/test-proj/base-case/fold-a/foo1.hs b/test/test-files/test-proj/base-case/fold-a/foo1.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/base-case/fold-a/foo1.hs
@@ -0,0 +1,1 @@
+fac' c = product [1..c] -- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/base-case/fold-b/foo2.hs b/test/test-files/test-proj/base-case/fold-b/foo2.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/base-case/fold-b/foo2.hs
@@ -0,0 +1,1 @@
+-- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/base-case/fold-c/foo3.hs b/test/test-files/test-proj/base-case/fold-c/foo3.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/base-case/fold-c/foo3.hs
@@ -0,0 +1,1 @@
+-- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/base-case/fold-c/sub-fold/foo4.hs b/test/test-files/test-proj/base-case/fold-c/sub-fold/foo4.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/base-case/fold-c/sub-fold/foo4.hs
@@ -0,0 +1,1 @@
+-- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/base-case/fold-c/sub-fold/foo5.hs b/test/test-files/test-proj/base-case/fold-c/sub-fold/foo5.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/base-case/fold-c/sub-fold/foo5.hs
@@ -0,0 +1,1 @@
+-- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/dot-folders/.alfa/foo1.hs b/test/test-files/test-proj/dot-folders/.alfa/foo1.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/dot-folders/.alfa/foo1.hs
@@ -0,0 +1,1 @@
+fac' c = product [1..c] -- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/dot-folders/_beta/foo1.hs b/test/test-files/test-proj/dot-folders/_beta/foo1.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/dot-folders/_beta/foo1.hs
@@ -0,0 +1,1 @@
+fac' c = product [1..c] -- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/dot-folders/foo1.hs b/test/test-files/test-proj/dot-folders/foo1.hs
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/dot-folders/foo1.hs
@@ -0,0 +1,3 @@
+fac' c = product [1..c] -- TODO: sometodo [t]
+
+-- warning: there are two hidden dot-folders in this directory
diff --git a/test/test-files/test-proj/fold-a/foo1.hs b/test/test-files/test-proj/fold-a/foo1.hs
deleted file mode 100644
--- a/test/test-files/test-proj/fold-a/foo1.hs
+++ /dev/null
@@ -1,1 +0,0 @@
-fac' c = product [1..c] -- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/fold-b/foo2.hs b/test/test-files/test-proj/fold-b/foo2.hs
deleted file mode 100644
--- a/test/test-files/test-proj/fold-b/foo2.hs
+++ /dev/null
@@ -1,1 +0,0 @@
--- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/fold-c/foo3.hs b/test/test-files/test-proj/fold-c/foo3.hs
deleted file mode 100644
--- a/test/test-files/test-proj/fold-c/foo3.hs
+++ /dev/null
@@ -1,1 +0,0 @@
--- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/fold-c/sub-fold/foo4.hs b/test/test-files/test-proj/fold-c/sub-fold/foo4.hs
deleted file mode 100644
--- a/test/test-files/test-proj/fold-c/sub-fold/foo4.hs
+++ /dev/null
@@ -1,1 +0,0 @@
--- TODO: sometodo [t]
diff --git a/test/test-files/test-proj/fold-c/sub-fold/foo5.hs b/test/test-files/test-proj/fold-c/sub-fold/foo5.hs
deleted file mode 100644
--- a/test/test-files/test-proj/fold-c/sub-fold/foo5.hs
+++ /dev/null
@@ -1,1 +0,0 @@
--- TODO: sometodo [t]
