Index: src/Actions/FragmentationAction/SubgraphDissectionAction.cpp
===================================================================
--- src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision a307afaf868689418b2f1803da4afde3c8e01e78)
+++ src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision 6866aa7c49cdc09ce8a84ee021aa65f313e82887)
@@ -24,5 +24,5 @@
 #include "Actions/MapOfActions.hpp"
 
-const char FragmentationSubgraphDissectionAction::NAME[] = "subspace-dissect";
+const char FragmentationSubgraphDissectionAction::NAME[] = "subgraph-dissect";
 
 FragmentationSubgraphDissectionAction::FragmentationSubgraphDissectionAction() :
@@ -39,4 +39,8 @@
 
   if(dialog->display()) {
+    DoLog(1) && (Log() << Verbose(1) << "Dissecting molecular system into a set of disconnected subgraphs ... " << endl);
+    // @TODO rather do the dissection afterwards
+    MoleculeListClass *molecules = World::getInstance().getMolecules();
+    molecules->DissectMoleculeIntoConnectedSubgraphs(World::getInstance().getPeriode(), World::getInstance().getConfig());
     delete dialog;
     return Action::success;
Index: src/Actions/MapOfActions.cpp
===================================================================
--- src/Actions/MapOfActions.cpp	(revision a307afaf868689418b2f1803da4afde3c8e01e78)
+++ src/Actions/MapOfActions.cpp	(revision 6866aa7c49cdc09ce8a84ee021aa65f313e82887)
@@ -96,5 +96,5 @@
   DescriptionMap["save-temperature"] = "name of the temperature file to write to";
   DescriptionMap["scale-box"] = "scale box and atomic positions inside";
-  DescriptionMap["subspace-dissect"] = "dissect the molecular system into molecules representing disconnected subgraphs";
+  DescriptionMap["subgraph-dissect"] = "dissect the molecular system into molecules representing disconnected subgraphs";
   DescriptionMap["suspend-in-water"] = "suspend the given molecule in water such that in the domain the mean density is as specified";
   DescriptionMap["translate-mol"] = "translate molecule by given vector";
@@ -158,5 +158,5 @@
   ShortFormMap["scale-box"] = "s";
   ShortFormMap["set-basis"] = "M";
-  ShortFormMap["subspace-dissect"] = "I";
+  ShortFormMap["subgraph-dissect"] = "I";
   ShortFormMap["suspend-in-water"] = "u";
   ShortFormMap["translate-mol"] = "t";
@@ -197,4 +197,5 @@
   TypeMap["scale-box"] = Vector;
   TypeMap["set-basis"] = String;
+  TypeMap["subgraph-dissect"] = None;
   TypeMap["suspend-in-water"] = Double;
   TypeMap["translate-mol"] = Vector;
@@ -268,5 +269,5 @@
   generic.insert("scale-box");
   generic.insert("set-basis");
-//	generic.insert("subspace-dissect");
+	generic.insert("subgraph-dissect");
   generic.insert("suspend-in-water");
   generic.insert("translate-mol");
Index: src/builder.cpp
===================================================================
--- src/builder.cpp	(revision a307afaf868689418b2f1803da4afde3c8e01e78)
+++ src/builder.cpp	(revision 6866aa7c49cdc09ce8a84ee021aa65f313e82887)
@@ -1737,19 +1737,6 @@
             case 'I':
               DoLog(1) && (Log() << Verbose(1) << "Dissecting molecular system into a set of disconnected subgraphs ... " << endl);
-              // @TODO rather do the dissection afterwards
-              molecules->DissectMoleculeIntoConnectedSubgraphs(periode, &configuration);
-              mol = NULL;
-              if (molecules->ListOfMolecules.size() != 0) {
-                for (MoleculeList::iterator ListRunner = molecules->ListOfMolecules.begin(); ListRunner != molecules->ListOfMolecules.end(); ListRunner++)
-                  if ((*ListRunner)->ActiveFlag) {
-                    mol = *ListRunner;
-                    break;
-                  }
-              }
-              if ((mol == NULL) && (!molecules->ListOfMolecules.empty())) {
-                mol = *(molecules->ListOfMolecules.begin());
-                if (mol != NULL)
-                  mol->ActiveFlag = true;
-              }
+              ArgcList.insert(argptr-1);
+              argptr+=0;
               break;
             case 'C':
