diff --git a/Doxyfile b/Doxyfile
index e466a8a760b041caa0840fd41a226c71456e5741..6988ed4a69b50c2474618eb69a07a1f91f9fd64d 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -47,7 +47,7 @@ OUTPUT_DIRECTORY       = doxygen
 # source files, where putting all generated files in the same directory would
 # otherwise cause performance problems for the file system.
 
-CREATE_SUBDIRS         = NO
+CREATE_SUBDIRS         = YES
 
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
 # documentation generated by doxygen is written. Doxygen will use this
@@ -372,7 +372,7 @@ INTERNAL_DOCS          = NO
 # in case and if your file system supports case sensitive file names. Windows
 # and Mac users are advised to set this option to NO.
 
-CASE_SENSE_NAMES       = YES
+CASE_SENSE_NAMES       = NO
 
 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
 # will show members with their full class and namespace scopes in the
@@ -568,7 +568,7 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = cmdline common nameserver objectstore remotens scheduler xroot_plugins
+INPUT                  = cmdline common nameserver objectstore remotens scheduler tapeserver xroot_plugins
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
diff --git a/scheduler/Scheduler.hpp b/scheduler/Scheduler.hpp
index f291bf1e2fd22a203a5d3c935ba3ec97be1ee80b..d443baa401d36b99cd6d4fc50c7b022c514e901e 100644
--- a/scheduler/Scheduler.hpp
+++ b/scheduler/Scheduler.hpp
@@ -50,6 +50,7 @@ class SecurityIdentity;
 class StorageClass;
 class Tape;
 class TapeMount;
+class TapeSession;
 class TapePool;
 class UserIdentity;
 
@@ -645,6 +646,18 @@ public:
   std::unique_ptr<TapeMount> getNextMount(const std::string &logicalLibraryName,
     const std::string & driveName);
 
+  /**
+   * Returns the next tape session for the specified logical library.
+   * All the functions of the mount will handled via the mount object
+   * itself. This is the entry point to the tape server's interface
+   *
+   * @param logicalLibraryName The name of the logical library.
+   * @param driveName The drive's name.
+   * @return The next tape mount or NULL if there is currently no work to do.
+   */
+  std::unique_ptr<TapeSession> getNextMount(const std::string &logicalLibraryName,
+    const std::string & driveName);
+
 //  class ArchiveMount:public TapeMount {
 //  public:
 //    class ArchiveJob
diff --git a/tapeserver/castor/tape/tapeserver/daemon/TapeDaemon.cpp b/tapeserver/castor/tape/tapeserver/daemon/TapeDaemon.cpp
index df143f2068eaa576467e28099ea8f774ec8bf822..760be2e177a1fe348ee11c5edd5c6d022709eed1 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/TapeDaemon.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/TapeDaemon.cpp
@@ -614,7 +614,9 @@ void castor::tape::tapeserver::daemon::TapeDaemon::initZmqContext() {
 void castor::tape::tapeserver::daemon::TapeDaemon::setUpReactor(
   const int reaperSocket) {
   createAndRegisterProcessForkerConnectionHandler(reaperSocket);
-  createAndRegisterVdqmAcceptHandler();
+  // In the CTA project the tapeserverd daemon does not listen for jobs from the
+  // vdqmd daemon, therefore do not create and register the vdqm accept handler
+  //createAndRegisterVdqmAcceptHandler();
   createAndRegisterAdminAcceptHandler();
   createAndRegisterLabelCmdAcceptHandler();
   createAndRegisterTapeMessageHandler();