Index: code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.cc
===================================================================
--- code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.cc	(revision 7266)
+++ code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.cc	(revision 7267)
@@ -43,5 +43,5 @@
 
         this->baseName_ = name;
-        this->baseExecutor_ = executor;
+        this->baseFunctor_ = executor->getFunctor();
 
         this->argumentCompleter_[0] = 0;
@@ -112,9 +112,9 @@
     bool ConsoleCommand::headersMatch(const FunctorPtr& functor)
     {
-        unsigned int minparams = std::min(this->baseExecutor_->getParamCount(), functor->getParamCount());
-
-        if (this->baseExecutor_->getFunctor()->getHeaderIdentifier(minparams) != functor->getHeaderIdentifier(minparams))
+        unsigned int minparams = std::min(this->baseFunctor_->getParamCount(), functor->getParamCount());
+
+        if (this->baseFunctor_->getHeaderIdentifier(minparams) != functor->getHeaderIdentifier(minparams))
             return false;
-        else if (functor->getParamCount() <= this->baseExecutor_->getParamCount())
+        else if (functor->getParamCount() <= this->baseFunctor_->getParamCount())
             return true;
         else if (!this->executor_)
@@ -122,7 +122,12 @@
         else
         {
-            for (unsigned int i = this->baseExecutor_->getParamCount(); i < functor->getParamCount(); ++i)
+            for (unsigned int i = this->baseFunctor_->getParamCount(); i < functor->getParamCount(); ++i)
+            {
                 if (!this->executor_->defaultValueSet(i))
+                {
+                    COUT(2) << "Default value " << i << " is missing" << std::endl;
                     return false;
+                }
+            }
 
             return true;
@@ -132,15 +137,20 @@
     bool ConsoleCommand::headersMatch(const ExecutorPtr& executor)
     {
-        unsigned int minparams = std::min(this->baseExecutor_->getParamCount(), executor->getParamCount());
-
-        if (this->baseExecutor_->getFunctor()->getHeaderIdentifier(minparams) != executor->getFunctor()->getHeaderIdentifier(minparams))
+        unsigned int minparams = std::min(this->baseFunctor_->getParamCount(), executor->getParamCount());
+
+        if (this->baseFunctor_->getHeaderIdentifier(minparams) != executor->getFunctor()->getHeaderIdentifier(minparams))
             return false;
-        else if (executor->getParamCount() <= this->baseExecutor_->getParamCount())
+        else if (executor->getParamCount() <= this->baseFunctor_->getParamCount())
             return true;
         else
         {
-            for (unsigned int i = this->baseExecutor_->getParamCount(); i < executor->getParamCount(); ++i)
+            for (unsigned int i = this->baseFunctor_->getParamCount(); i < executor->getParamCount(); ++i)
+            {
                 if (!executor->defaultValueSet(i))
+                {
+                    COUT(2) << "Default value " << i << " is missing" << std::endl;
                     return false;
+                }
+            }
 
             return true;
Index: code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.h
===================================================================
--- code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.h	(revision 7266)
+++ code/branches/consolecommands3/src/libraries/core/command/ConsoleCommand.h	(revision 7267)
@@ -223,6 +223,6 @@
 
             const ExecutorPtr& getExecutor() const;
-            inline const ExecutorPtr& getBaseExecutor() const
-                { return this->baseExecutor_; }
+            inline const FunctorPtr& getBaseFunctor() const
+                { return this->baseFunctor_; }
 
             inline ConsoleCommand& setActive(bool bActive)
@@ -311,5 +311,5 @@
             AccessLevel::Enum accessLevel_;
             std::string baseName_;
-            ExecutorPtr baseExecutor_;
+            FunctorPtr baseFunctor_;
 
             ExecutorPtr executor_;
