Index: src/Actions/WorldAction/StepWorldTimeAction.cpp
===================================================================
--- src/Actions/WorldAction/StepWorldTimeAction.cpp	(revision 4d1aefe10a3f9599d053c90aa700a00930f43995)
+++ src/Actions/WorldAction/StepWorldTimeAction.cpp	(revision 2a28cd833d2139aba7c9b608010c5ce108d39082)
@@ -47,4 +47,16 @@
 using namespace MoleCuilder;
 
+// if both are given, we use backwards
+static int getSteps(const unsigned int _forward, const unsigned int _backward)
+{
+  int steps = 0;
+  if (_backward > 0)
+    steps = -_backward;
+  else
+    steps = _forward;
+
+  return steps;
+}
+
 // and construct the stuff
 #include "StepWorldTimeAction.def"
@@ -57,9 +69,11 @@
   WorldStepWorldTimeState *UndoState = new WorldStepWorldTimeState(oldtime, params);
 
-  if ((oldtime + params.steps.get()) < 0) {
+  const int steps = getSteps(params.steps_forward.get(), params.steps_backward.get());
+
+  if ((oldtime + steps) < 0) {
     ELOG(1, "Cannot step back before time step #0.");
     return Action::failure;
   }
-  World::getInstance().setTime(oldtime+params.steps.get());
+  World::getInstance().setTime(oldtime+steps);
   LOG(0, "Current time step is now: " << WorldTime::getTime() << ".");
   return ActionState::ptr(UndoState);
@@ -78,5 +92,9 @@
   WorldStepWorldTimeState *state = assert_cast<WorldStepWorldTimeState*>(_state.get());
 
-  World::getInstance().setTime(state->oldtime+state->params.steps.get());
+  const int steps = getSteps(
+      state->params.steps_forward.get(),
+      state->params.steps_backward.get());
+
+  World::getInstance().setTime(state->oldtime+steps);
   LOG(0, "Current time step is now: " << WorldTime::getTime() << ".");
 
Index: src/Actions/WorldAction/StepWorldTimeAction.def
===================================================================
--- src/Actions/WorldAction/StepWorldTimeAction.def	(revision 4d1aefe10a3f9599d053c90aa700a00930f43995)
+++ src/Actions/WorldAction/StepWorldTimeAction.def	(revision 2a28cd833d2139aba7c9b608010c5ce108d39082)
@@ -14,11 +14,12 @@
 // ValueStorage by the token "Z" -> first column: int, Z, "Z"
 // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value
-#define paramtypes (int)
-#define paramtokens ("step-world-time")
-#define paramdescriptions ("how many steps to take forward or backward")
-#undef paramdefaults
-#define paramreferences (steps)
+#define paramtypes (unsigned int)(unsigned int)
+#define paramtokens ("steps-forward")("steps-backward")
+#define paramdescriptions ("how many steps to take forward or backward")("how many steps to take forward or backward")
+#define paramdefaults (PARAM_DEFAULT(1))(PARAM_DEFAULT(0))
+#define paramreferences (steps_forward)(steps_backward)
 #define paramvalids \
-(DummyValidator< int >())
+(DummyValidator< unsigned int >()) \
+(DummyValidator< unsigned int >())
 
 #define statetypes (unsigned int)
Index: src/Potentials/RegistryDeserializer_impl.hpp
===================================================================
--- src/Potentials/RegistryDeserializer_impl.hpp	(revision 4d1aefe10a3f9599d053c90aa700a00930f43995)
+++ src/Potentials/RegistryDeserializer_impl.hpp	(revision 2a28cd833d2139aba7c9b608010c5ce108d39082)
@@ -30,4 +30,9 @@
   while (serialized.good()) {
     getline(serialized, linestring);
+    const std::string comment("#");
+    if (linestring.find(comment) != std::string::npos) {
+      LOG(4, "DEBUG: Skipping comment line:"+linestring);
+      continue;
+    }
     const std::string delimiters("{}");
     const size_t delimitersBegin = linestring.find_first_of(delimiters);
Index: tests/Python/AllActions/options.dat
===================================================================
--- tests/Python/AllActions/options.dat	(revision 4d1aefe10a3f9599d053c90aa700a00930f43995)
+++ tests/Python/AllActions/options.dat	(revision 2a28cd833d2139aba7c9b608010c5ce108d39082)
@@ -225,5 +225,6 @@
 skiplines	"2"
 start-step	"0"
-step-world-time	"1"
+steps-forward	"1"
+steps-backward	"0"
 steps	"5"
 store-grids	"0"
Index: tests/regression/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at
===================================================================
--- tests/regression/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at	(revision 4d1aefe10a3f9599d053c90aa700a00930f43995)
+++ tests/regression/WorldTime/StepWorldTime/testsuite-worldtime-step-world-time.at	(revision 2a28cd833d2139aba7c9b608010c5ce108d39082)
@@ -21,10 +21,10 @@
 AT_KEYWORDS([worldtime step-world-time set-world-time])
 
-AT_CHECK([../../molecuilder --step-world-time 1], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --step-world-time --steps-forward 1], 0, [stdout], [stderr])
 AT_CHECK([fgrep "Current time step is now: 1" stdout], 0, [ignore], [ignore])
-AT_CHECK([../../molecuilder --set-world-time 4 --step-world-time -2], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --set-world-time 4 --step-world-time --steps-backward 2], 0, [stdout], [stderr])
 AT_CHECK([fgrep "Current time step is now: 2" stdout], 0, [ignore], [ignore])
 # stepping back too far fails
-AT_CHECK([../../molecuilder --set-world-time 1 --step-world-time -2], 5, [stdout], [stderr])
+AT_CHECK([../../molecuilder --set-world-time 1 --step-world-time --steps-backward 2], 5, [stdout], [stderr])
 
 AT_CLEANUP
@@ -34,5 +34,5 @@
 AT_KEYWORDS([worldtime step-world-time set-world-time undo])
 
-AT_CHECK([../../molecuilder --set-world-time 2 --step-world-time -1 --undo], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --set-world-time 2 --steps-backward  1 --undo], 0, [stdout], [stderr])
 AT_CHECK([fgrep "Current time step is now again: 2" stdout], 0, [ignore], [ignore])
 
@@ -42,9 +42,6 @@
 AT_KEYWORDS([worldtime step-world-time set-world-time undo redo])
 
-AT_CHECK([../../molecuilder --set-world-time 2 --step-world-time -1 --undo --redo], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder --set-world-time 2 --steps-backward 1 --undo --redo], 0, [stdout], [stderr])
 AT_CHECK([fgrep "Current time step is now: 1" stdout], 0, [ignore], [ignore])
 
 AT_CLEANUP
-
-
-
