Index: src/Actions/ActionQueue.cpp
===================================================================
--- src/Actions/ActionQueue.cpp	(revision 15e1978cca9c4568b8ac921a0fee1cac72517d81)
+++ src/Actions/ActionQueue.cpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -63,11 +63,12 @@
     history(new ActionHistory),
 #ifndef HAVE_ACTION_THREAD
-    lastActionOk(true)
+    lastActionOk(true),
 #else
     CurrentAction(0),
     lastActionOk(true),
     run_thread(boost::bind(&ActionQueue::run, this)),
-    run_thread_isIdle(true)
-#endif
+    run_thread_isIdle(true),
+#endif
+    dryrun_flag(false)
 {
   // channels of observable
@@ -109,5 +110,6 @@
 #ifndef HAVE_ACTION_THREAD
   try {
-    newaction->call();
+    if (!isDryRun(newaction))
+      newaction->call();
     lastActionOk = true;
   } catch(ActionFailureException &e) {
@@ -175,5 +177,6 @@
       LOG(0, "Calling Action " << actionqueue[CurrentAction]->getName() << " ... ");
       try {
-        actionqueue[CurrentAction]->call();
+        if (!isDryRun(actionqueue[CurrentAction]))
+          actionqueue[CurrentAction]->call();
         pushStatus("SUCCESS: Action "+actionqueue[CurrentAction]->getName()+" successful.");
         lastActionOk = true;
@@ -380,4 +383,10 @@
 }
 
+bool ActionQueue::isDryRun(const Action *_nextaction) const
+{
+  bool status = dryrun_flag;
+  status &= (_nextaction->getName() != "no-dry-run");
+  return status;
+}
 
 CONSTRUCT_SINGLETON(ActionQueue)
Index: src/Actions/ActionQueue.hpp
===================================================================
--- src/Actions/ActionQueue.hpp	(revision 15e1978cca9c4568b8ac921a0fee1cac72517d81)
+++ src/Actions/ActionQueue.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -40,4 +40,5 @@
 class ActionRegistry;
 class ActionTrait;
+class DryRunAdvocate;
 
 namespace Queuedetail {
@@ -178,4 +179,11 @@
   { return StatusList; }
 
+  /** Getter for isDryRun state flag.
+   *
+   * \return true - ActionQueue does not execute Actions but skips, false - else
+   */
+  bool getDryRun() const
+  { return dryrun_flag; }
+
 private:
   //!> grant Action access to internal history functions.
@@ -183,4 +191,6 @@
   //!> grant CommandLineParser access to stop and clearQueue()
   friend class ::CommandLineParser;
+  //!> grant Advocate access to setting dryrun
+  friend class DryRunAdvocate;
 
   /** Wrapper function to add state to ActionHistory.
@@ -255,4 +265,18 @@
   void insertAction(Action *_action, enum Action::QueryOptions state);
 
+  /** Sets the current state of the \a isDryRun flag.
+   *
+   * \param _dryrun true - Actions will not get executed anymore, false - else
+   */
+  void setDryRun(const bool _dryrun)
+  { dryrun_flag = _dryrun; }
+
+  /** Checks whether next Action should be skipped or not.
+   *
+   * \param _nextaction next action to execute to inspect whether it unsets dryrun_flag
+   * \return true - dryrun_flag set and \a _nextaction is not unsetting dry run
+   */
+  bool isDryRun(const Action *_nextaction) const;
+
 private:
   /** Private cstor for ActionQueue.
@@ -309,4 +333,7 @@
   //!> internal list of status messages from Actions for UIs to display
   ActionStatusList StatusList;
+
+  //!> internal flag whether to call or skip actions (i.e. do a dry run)
+  bool dryrun_flag;
 };
 namespace Queuedetail {
Index: src/Actions/CommandAction/DryRunAction.cpp
===================================================================
--- src/Actions/CommandAction/DryRunAction.cpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/DryRunAction.cpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,88 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2015 Frederik Heber. All rights reserved.
+ * 
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder is free software: you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation, either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * DryRunAction.cpp
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "version.h"
+
+#include <sstream>
+#include <string>
+
+#include "Actions/CommandAction/DryRunAction.hpp"
+
+#include "Actions/ActionQueue.hpp"
+#include "Actions/DryRunAdvocate.hpp"
+
+using namespace MoleCuilder;
+
+// and construct the stuff
+#include "DryRunAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
+ActionState::ptr CommandDryRunAction::performCall() {
+  // set ActionQueue on to last element (hence skipping all in between)
+  const bool oldstate = ActionQueue::getInstance().getDryRun();
+  DryRunAdvocate::setDryRun(true);
+  STATUS("Performing dry run from now on.");
+
+  return ActionState::ptr(new CommandDryRunState(oldstate, params));
+}
+
+ActionState::ptr CommandDryRunAction::performUndo(ActionState::ptr _state) {
+  CommandDryRunState *state = assert_cast<CommandDryRunState*>(_state.get());
+  DryRunAdvocate::setDryRun(state->dryrunstate);
+  {
+    std::stringstream output;
+    output << "Undoing set dry run, is back to " << (state->dryrunstate ? "true" : "false");
+    STATUS(output.str());
+  }
+
+  return ActionState::ptr(_state);
+}
+
+ActionState::ptr CommandDryRunAction::performRedo(ActionState::ptr _state){
+  DryRunAdvocate::setDryRun(true);
+  STATUS("Redoing set dry run.");
+
+  return ActionState::ptr(_state);
+}
+
+bool CommandDryRunAction::canUndo() {
+  return true;
+}
+
+bool CommandDryRunAction::shouldUndo() {
+  return true;
+}
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/DryRunAction.def
===================================================================
--- src/Actions/CommandAction/DryRunAction.def	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/DryRunAction.def	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,36 @@
+/*
+ * DryRunAction.def
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+#include "version.h"
+
+#include "Parameters/Validators/DummyValidator.hpp"
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
+#undef paramtypes
+#undef paramtokens
+#undef paramdescriptions
+#undef paramdefaults
+#undef paramreferences
+#undef paramvalids
+
+#define statetypes (bool)
+#define statereferences (dryrunstate)
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define MENUNAME "command"
+#define MENUPOSITION 6
+#define ACTIONNAME DryRun
+#define TOKEN "dry-run"
+
+
+// finally the information stored in the ActionTrait specialization
+#define DESCRIPTION "all actions, currently present in the ActionQueue, will not get executed (but are stored to a session if requested)"
+#undef SHORTFORM
Index: src/Actions/CommandAction/DryRunAction.hpp
===================================================================
--- src/Actions/CommandAction/DryRunAction.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/DryRunAction.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,22 @@
+/*
+ * DryRunAction.hpp
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+#ifndef DRYRUNACTION_HPP_
+#define DRYRUNACTION_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include "Actions/Action.hpp"
+
+#include "DryRunAction.def"
+#include "Action_impl_header.hpp"
+
+#endif /* DRYRUNACTION_HPP_ */
Index: src/Actions/CommandAction/NoDryRunAction.cpp
===================================================================
--- src/Actions/CommandAction/NoDryRunAction.cpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/NoDryRunAction.cpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,88 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2015 Frederik Heber. All rights reserved.
+ * 
+ *
+ *   This file is part of MoleCuilder.
+ *
+ *    MoleCuilder is free software: you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation, either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    MoleCuilder is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with MoleCuilder.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * NoDryRunAction.cpp
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "version.h"
+
+#include <sstream>
+#include <string>
+
+#include "Actions/CommandAction/NoDryRunAction.hpp"
+
+#include "Actions/ActionQueue.hpp"
+#include "Actions/DryRunAdvocate.hpp"
+
+using namespace MoleCuilder;
+
+// and construct the stuff
+#include "NoDryRunAction.def"
+#include "Action_impl_pre.hpp"
+/** =========== define the function ====================== */
+ActionState::ptr CommandNoDryRunAction::performCall() {
+  // set ActionQueue on to last element (hence skipping all in between)
+  const bool oldstate = ActionQueue::getInstance().getDryRun();
+  DryRunAdvocate::setDryRun(false);
+  STATUS("Performing no more dry run from now on.");
+
+  return ActionState::ptr(new CommandNoDryRunState(oldstate, params));
+}
+
+ActionState::ptr CommandNoDryRunAction::performUndo(ActionState::ptr _state) {
+  CommandNoDryRunState *state = assert_cast<CommandNoDryRunState*>(_state.get());
+  DryRunAdvocate::setDryRun(state->dryrunstate);
+  {
+    std::stringstream output;
+    output << "Undoing unset dry run, is back to " << (state->dryrunstate ? "true" : "false");
+    STATUS(output.str());
+  }
+
+  return ActionState::ptr(_state);
+}
+
+ActionState::ptr CommandNoDryRunAction::performRedo(ActionState::ptr _state){
+  DryRunAdvocate::setDryRun(false);
+  STATUS("Redoing unset dry run.");
+
+  return ActionState::ptr(_state);
+}
+
+bool CommandNoDryRunAction::canUndo() {
+  return true;
+}
+
+bool CommandNoDryRunAction::shouldUndo() {
+  return true;
+}
+/** =========== end of function ====================== */
Index: src/Actions/CommandAction/NoDryRunAction.def
===================================================================
--- src/Actions/CommandAction/NoDryRunAction.def	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/NoDryRunAction.def	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,36 @@
+/*
+ * NoDryRunAction.def
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+// all includes and forward declarations necessary for non-integral types below
+#include "version.h"
+
+#include "Parameters/Validators/DummyValidator.hpp"
+
+// i.e. there is an integer with variable name Z that can be found in
+// ValueStorage by the token "Z" -> first column: int, Z, "Z"
+// "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
+#undef paramtypes
+#undef paramtokens
+#undef paramdescriptions
+#undef paramdefaults
+#undef paramreferences
+#undef paramvalids
+
+#define statetypes (bool)
+#define statereferences (dryrunstate)
+
+// some defines for all the names, you may use ACTION, STATE and PARAMS
+#define CATEGORY Command
+#define MENUNAME "command"
+#define MENUPOSITION 6
+#define ACTIONNAME NoDryRun
+#define TOKEN "no-dry-run"
+
+
+// finally the information stored in the ActionTrait specialization
+#define DESCRIPTION "all following actions will again get executed"
+#undef SHORTFORM
Index: src/Actions/CommandAction/NoDryRunAction.hpp
===================================================================
--- src/Actions/CommandAction/NoDryRunAction.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/CommandAction/NoDryRunAction.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,22 @@
+/*
+ * NoDryRunAction.hpp
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+#ifndef NODRYRUNACTION_HPP_
+#define NODRYRUNACTION_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include "Actions/Action.hpp"
+
+#include "NoDryRunAction.def"
+#include "Action_impl_header.hpp"
+
+#endif /* NODRYRUNACTION_HPP_ */
Index: src/Actions/DryRunAdvocate.hpp
===================================================================
--- src/Actions/DryRunAdvocate.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
+++ src/Actions/DryRunAdvocate.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -0,0 +1,37 @@
+/*
+ * DryRunAdvocate.hpp
+ *
+ *  Created on: May 15, 2015
+ *      Author: heber
+ */
+
+#ifndef DRYRUNADVOCATE_HPP_
+#define DRYRUNADVOCATE_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "Actions/ActionQueue.hpp"
+
+namespace MoleCuilder {
+
+/** Contains all other classes that may access ActionQueue::setDryRun().
+ *
+ * This is an Advocate design pattern.
+ */
+class DryRunAdvocate
+{
+private:
+  //! grant respective actions access
+  friend class CommandDryRunAction;
+  friend class CommandNoDryRunAction;
+
+  static void setDryRun(const bool _dryrun)
+  { ActionQueue::getInstance().setDryRun(_dryrun); }
+};
+
+} /** namespace MoleCuilder */
+
+#endif /* DRYRUNADVOCATE_HPP_ */
Index: src/Actions/GlobalListOfActions.hpp
===================================================================
--- src/Actions/GlobalListOfActions.hpp	(revision 15e1978cca9c4568b8ac921a0fee1cac72517d81)
+++ src/Actions/GlobalListOfActions.hpp	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -41,4 +41,5 @@
   (BondAdd) \
   (BondRemove) \
+  (CommandDryRun) \
   (CommandElementDb) \
   (CommandBondLengthTable) \
@@ -46,4 +47,5 @@
   (CommandHelp) \
   (CommandHelpRedistribute) \
+  (CommandNoDryRun) \
   (CommandSetRandomNumbersEngine) \
   (CommandSetRandomNumbersDistribution) \
Index: src/Actions/Makefile.am
===================================================================
--- src/Actions/Makefile.am	(revision 15e1978cca9c4568b8ac921a0fee1cac72517d81)
+++ src/Actions/Makefile.am	(revision f3db6059ff3cc60a56408536bc8c419fc809da01)
@@ -41,4 +41,5 @@
   Actions/Calculation.hpp \
   Actions/Calculation_impl.hpp \
+  Actions/DryRunAdvocate.hpp \
   Actions/ErrorAction.hpp \
   Actions/GlobalListOfActions.hpp \
@@ -187,8 +188,10 @@
 CMDACTIONSOURCE = \
   Actions/CommandAction/BondLengthTableAction.cpp \
+  Actions/CommandAction/DryRunAction.cpp \
   Actions/CommandAction/ElementDbAction.cpp \
   Actions/CommandAction/FastParsingAction.cpp \
   Actions/CommandAction/HelpAction.cpp \
   Actions/CommandAction/HelpRedistributeAction.cpp \
+  Actions/CommandAction/NoDryRunAction.cpp \
   Actions/CommandAction/StoreSessionAction.cpp \
   Actions/CommandAction/VerboseAction.cpp \
@@ -197,8 +200,10 @@
 CMDACTIONHEADER = \
   Actions/CommandAction/BondLengthTableAction.hpp \
+  Actions/CommandAction/DryRunAction.hpp \
   Actions/CommandAction/ElementDbAction.hpp \
   Actions/CommandAction/FastParsingAction.hpp \
   Actions/CommandAction/HelpAction.hpp \
   Actions/CommandAction/HelpRedistributeAction.hpp \
+  Actions/CommandAction/NoDryRunAction.hpp \
   Actions/CommandAction/StoreSessionAction.hpp \
   Actions/CommandAction/VerboseAction.hpp \
@@ -207,8 +212,10 @@
 CMDACTIONDEFS = \
   Actions/CommandAction/BondLengthTableAction.def \
+  Actions/CommandAction/DryRunAction.def \
   Actions/CommandAction/ElementDbAction.def \
   Actions/CommandAction/FastParsingAction.def \
   Actions/CommandAction/HelpAction.def \
   Actions/CommandAction/HelpRedistributeAction.def \
+  Actions/CommandAction/NoDryRunAction.def \
   Actions/CommandAction/StoreSessionAction.def \
   Actions/CommandAction/VerboseAction.def \
