diff --git a/build.gradle.kts b/build.gradle.kts
index 81bfcd6..6391c08 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -112,10 +112,12 @@
 
 // This source set is only needed, because the OSGI plugin supports only a single sourceSet.
 // We are deleting it, because otherwise it would fool IDEs that a source root has multiple owners.
+val otherSourceSetsRef = fmExt
+    .allConfiguredSourceSetNames
+    .map { names -> names.map { name -> sourceSets.named(name).get() } }
 val osgiSourceSet = sourceSets
     .create("osgi") {
-        val otherSourceSets = fmExt.allConfiguredSourceSetNames.get().map { name -> sourceSets.named(name).get() }
-
+        val otherSourceSets = otherSourceSetsRef.get()
         java.setSrcDirs(otherSourceSets.flatMap { s -> s.java.srcDirs })
         resources.setSrcDirs(otherSourceSets.flatMap { s -> s.resources.srcDirs })
     }
@@ -124,13 +126,25 @@
         compileClasspath = osgiClasspath
         runtimeClasspath = osgiClasspath
     }
-    .also { sourceSets.remove(it) }
+    .also {
+        sourceSets.remove(it)
+        tasks.named(it.classesTaskName).configure {
+            description = "Do not run this task! This task exists only as a work around for the OSGI plugin."
+            enabled = false
+        }
+    }
 
 tasks.named<Jar>(JavaPlugin.JAR_TASK_NAME) {
     configure<aQute.bnd.gradle.BundleTaskExtension> {
         bndfile.set(file("osgi.bnd"))
 
         setSourceSet(osgiSourceSet)
+        val otherSourceSets = otherSourceSetsRef
+            .get()
+            .flatMap { sourceSet -> sourceSet.output.files }
+            .toSet()
+
+        classpath(osgiSourceSet.compileClasspath.filter { file -> file !in otherSourceSets })
         properties.putAll(fmExt.versionDef.versionProperties)
         properties.put("moduleOrg", project.group.toString())
         properties.put("moduleName", project.name)
diff --git a/osgi.bnd b/osgi.bnd
index f80220f..9cbe266 100644
--- a/osgi.bnd
+++ b/osgi.bnd
@@ -21,7 +21,6 @@
 # imports by examining the class files, and generates the OSGi meta-info
 # based on that and this file.
 
--classpath: build/classes
 -failok: false
 
 Bundle-SymbolicName: ${moduleOrg}.${moduleName}
@@ -29,8 +28,6 @@
 Bundle-License: Apache License, Version 2.0; see: http://www.apache.org/licenses/LICENSE-2.0.txt
 Bundle-Vendor: freemarker.org
 
-Include-Resource: META-INF=src/dist/jar/META-INF
-
 Export-Package: !freemarker.test.*, freemarker.*;version="${versionForOSGi}"
 # Important:
 # Packages that don't match nor the Export-Package nor the
