diff --git a/mediachanger/acs/AcsCmdLine.cpp b/mediachanger/acs/AcsCmdLine.cpp
index 982820a62ce70f6b829c9f1ec0649992a5a95d6b..b04924fb67c1e4c3d532c7219a441670ea2d8c7f 100644
--- a/mediachanger/acs/AcsCmdLine.cpp
+++ b/mediachanger/acs/AcsCmdLine.cpp
@@ -134,7 +134,7 @@ bool cta::mediachanger::acs::AcsCmdLine::onlyContainsNumerals(const std::string
 int cta::mediachanger::acs::AcsCmdLine::parseQueryInterval(const std::string &s) {
   const int queryInterval = atoi(s.c_str());
   if(0 >= queryInterval) {
-    cta::exception::InvalidArgument ex;
+    InvalidQueryInterval ex;
     ex.getMessage() << "Query value must be an integer greater than 0"
       ": value=" << queryInterval;
     throw ex;
diff --git a/mediachanger/acs/AcsCmdLine.hpp b/mediachanger/acs/AcsCmdLine.hpp
index 8d88a1899a13778515b67fa25d8344bdd11d1e34..8fcda5c99681d5fe58aba1c800a9fdff7fe1ba6e 100644
--- a/mediachanger/acs/AcsCmdLine.hpp
+++ b/mediachanger/acs/AcsCmdLine.hpp
@@ -57,10 +57,19 @@ public:
 
 protected:
 
+  /**
+   * Invalid query interval.
+   */
+  struct InvalidQueryInterval: public exception::Exception {
+    InvalidQueryInterval(const std::string &context = "", const bool embedBacktrace = true):
+      cta::exception::Exception(context, embedBacktrace) {}
+  };
+
   /**
    * Parses the specified query interval.
    *
    * @return The parse query interval.
+   * @throw InvalidQueryInterval if the query interval is invalid.
    */
   int parseQueryInterval(const std::string &s);