diff --git a/alib2cli/src/command/CastsIntrospectionCommand.h b/alib2cli/src/command/CastsIntrospectionCommand.h
index bae9ff05cee61867eaa3592137f059d42f261862..217925218db9642c97f64735832b3a7a59a12339 100644
--- a/alib2cli/src/command/CastsIntrospectionCommand.h
+++ b/alib2cli/src/command/CastsIntrospectionCommand.h
@@ -26,7 +26,9 @@ public:
 	}
 
 	virtual Command::Result run ( Environment & environment ) const override {
-		std::string param = m_param->eval ( environment );
+		std::string param;
+		if ( m_param != nullptr )
+			param = m_param->eval ( environment );
 
 		if ( m_from )
 			printTypes ( abstraction::Registry::listCastsFrom ( param ) );
diff --git a/alib2cli/src/parser/Parser.cpp b/alib2cli/src/parser/Parser.cpp
index d9de2ba5d9206a3de37e96f138b5e6bf73ba3a27..bec2d8c6d7624ab8f74bcbce3b717c8874310965 100644
--- a/alib2cli/src/parser/Parser.cpp
+++ b/alib2cli/src/parser/Parser.cpp
@@ -271,7 +271,7 @@ std::unique_ptr < Command > Parser::introspect_command ( ) {
 	} else if ( check_nonreserved_kw ( "casts" ) ) {
 		match_nonreserved_kw ( "casts" );
 		std::pair < bool, bool > from_to = introspect_cast_from_to ( );
-		std::unique_ptr < cli::Arg > param = arg ( );
+		std::unique_ptr < cli::Arg > param = optional_arg ( );
 		match ( cli::Lexer::TokenType::END );
 		return std::make_unique < CastsIntrospectionCommand > ( std::move ( param ), from_to.first, from_to.second );
 	} else {