diff --git a/lib/modules/manager/leiningen/__fixtures__/project.clj b/lib/modules/manager/leiningen/__fixtures__/project.clj
index 1f6714ddb5319c7dc9fca445adfbd36fa6d3511b..d9e3416048560d1e0353888bf3dd9e465515a307 100644
--- a/lib/modules/manager/leiningen/__fixtures__/project.clj
+++ b/lib/modules/manager/leiningen/__fixtures__/project.clj
@@ -51,6 +51,7 @@
   ;; You can also strings like ["group-id/name" version] for instances
   ;; where the dependency name isn't a valid symbol literal.
   :dependencies [[org.clojure/clojure,"1.3.0"]
+                 #_[org.clojure/clojure "9.9.9"]
                  [org.jclouds/jclouds "1.0" :classifier "jdk15"]
                  [net.sf.ehcache/ehcache "2.3.1" :extension "pom"]
                  [log4j "1.2.15" :exclusions [[javax.mail/mail :extension "jar"]
@@ -59,6 +60,7 @@
                                               com.sun.jmx/jmxri]]
                  ["net.3scale/3scale-api" "3.0.2"]
                  [org.lwjgl.lwjgl/lwjgl "2.8.5"]
+                 #_[org.lwjgl.lwjgl/lwjgl "0.0.0"]
                  [org.lwjgl.lwjgl/lwjgl-platform "2.8.5"
                   :classifier "natives-osx"
                   ;; LWJGL stores natives in the root of the jar; this
diff --git a/lib/modules/manager/leiningen/extract.spec.ts b/lib/modules/manager/leiningen/extract.spec.ts
index 9ef40825c6b884dd4da4a9def88b80cf280e4501..e6f741e7d15366327f0087f4241deac6eef7437c 100644
--- a/lib/modules/manager/leiningen/extract.spec.ts
+++ b/lib/modules/manager/leiningen/extract.spec.ts
@@ -16,6 +16,7 @@ describe('modules/manager/leiningen/extract', () => {
     expect(extractFromVectors('')).toBeEmptyArray();
     expect(extractFromVectors('[]')).toBeEmptyArray();
     expect(extractFromVectors('[[]]')).toBeEmptyArray();
+    expect(extractFromVectors('[#_[foo/bar "1.2.3"]]')).toBeEmptyArray();
     expect(extractFromVectors('[[foo/bar "1.2.3"]]')).toEqual([
       {
         datasource: ClojureDatasource.id,
diff --git a/lib/modules/manager/leiningen/extract.ts b/lib/modules/manager/leiningen/extract.ts
index 0f89e5b465a8458001f2d62a254639e8261175c5..1b1e2572535c1d511cd121758aba9cabb4cc5987 100644
--- a/lib/modules/manager/leiningen/extract.ts
+++ b/lib/modules/manager/leiningen/extract.ts
@@ -35,6 +35,7 @@ export function extractFromVectors(
   let vecPos = 0;
   let artifactId = '';
   let version = '';
+  let commentLevel = 0;
 
   const isSpace = (ch: string | null): boolean =>
     !!ch && regEx(/[\s,]/).test(ch);
@@ -43,7 +44,7 @@ export function extractFromVectors(
     s.replace(regEx(/^"/), '').replace(regEx(/"$/), '');
 
   const yieldDep = (): void => {
-    if (artifactId && version) {
+    if (!commentLevel && artifactId && version) {
       const depName = expandDepName(cleanStrLiteral(artifactId));
       if (version.startsWith('~')) {
         const varName = version.replace(regEx(/^~\s*/), '');
@@ -73,6 +74,11 @@ export function extractFromVectors(
   let prevChar: string | null = null;
   while (idx < str.length) {
     const char = str.charAt(idx);
+
+    if (str.substring(idx).startsWith('#_[')) {
+      commentLevel = balance;
+    }
+
     if (char === '[') {
       balance += 1;
       if (balance === 2) {
@@ -80,6 +86,13 @@ export function extractFromVectors(
       }
     } else if (char === ']') {
       balance -= 1;
+
+      if (commentLevel === balance) {
+        artifactId = '';
+        version = '';
+        commentLevel = 0;
+      }
+
       if (balance === 1) {
         yieldDep();
       } else if (balance === 0) {