diff --git a/adeterminize2/src/adeterminize.cpp b/adeterminize2/src/adeterminize.cpp
index 144431885aeddf85905bd238c56137312a2481f0..0a920ed23f378cb7fe8d6ff3ae19ca9559d59ba9 100644
--- a/adeterminize2/src/adeterminize.cpp
+++ b/adeterminize2/src/adeterminize.cpp
@@ -95,12 +95,22 @@ int main(int argc, char** argv) {
 
 	type = getLowerCaseType(type);
 
+	std::list<sax::Token> tokens;
+	sax::SaxParseInterface::parseStdin(tokens);
+
 	try {
 		if (type == TYPE_FSM) {
-			automaton::NFA nfa = alib::DataFactory::fromStdin<automaton::NFA>();
-			automaton::DFA dfa = determinize::NFADeterminizer::determinize(nfa);
-			alib::DataFactory::toStdout(dfa);
-			return 0;
+			std::string xmlMark = tokens.front( ).getData( );
+			if(xmlMark == "NFA") {
+				automaton::NFA nfa = alib::DataFactory::fromTokens<automaton::NFA>(tokens);
+				automaton::DFA dfa = determinize::NFADeterminizer::determinize(nfa);
+				alib::DataFactory::toStdout(dfa);
+				return 0;
+			} else if(xmlMark == "DFA") {
+				automaton::DFA automaton = alib::DataFactory::fromTokens<automaton::DFA>(tokens);
+				alib::DataFactory::toStdout(automaton);
+				return 0;
+			}
 		}
 
 /*		} else if (type == TYPE_IDPDA) {