diff --git a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp
index f1208513aa5848e7d1d0f7cd78971a49e81d0e6c..4d0822041031eab8ae7366db0aefdda3b3fe3f75 100644
--- a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp
+++ b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp
@@ -52,11 +52,11 @@ public:
 	}
 
 	virtual bool inputsAttached ( ) const override {
-		for ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param : m_params )
-			if ( ! ( bool ) param.first )
-				return false;
+		auto attached_lambda = [ ] ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param ) {
+			return ( bool ) param.first;
+		};
 
-		return true;
+		return std::all_of ( m_params.begin ( ), m_params.end ( ), attached_lambda );
 	}
 
 	virtual bool eval ( ) override {
diff --git a/alib2abstraction/src/registry/ContainerRegistry.cpp b/alib2abstraction/src/registry/ContainerRegistry.cpp
index a1a4e7ea4b01861c79040f098b3d8f9f748d332e..21f317fdfeaa41a1c3cf3f549d41a6969e85d6b4 100644
--- a/alib2abstraction/src/registry/ContainerRegistry.cpp
+++ b/alib2abstraction/src/registry/ContainerRegistry.cpp
@@ -25,11 +25,15 @@ std::shared_ptr < abstraction::OperationAbstraction > ContainerRegistry::getAbst
 	if ( group == getEntries ( ).end ( ) )
 		throw std::invalid_argument ( "Entry " + container + " not available" );
 
-	for ( const ext::pair < std::string, std::unique_ptr < Entry > > & entry : group->second )
-		if ( ext::is_same_type ( param, ext::erase_template_info ( entry.first ) ) )
-			return entry.second->getAbstraction ( );
+	auto is_same_type_lambda = [ & ] ( const ext::pair < std::string, std::unique_ptr < Entry > > & entry ) {
+		return ext::is_same_type ( param, ext::erase_template_info ( entry.first ) );
+	};
+
+	auto iter = std::find_if ( group->second.begin ( ), group->second.end ( ), is_same_type_lambda );
+	if ( iter == group->second.end ( ) )
+		throw std::invalid_argument ( "Entry for " + container + " parametrized with " + param + " not available." );
 
-	throw std::invalid_argument ( "Entry for " + container + " parametrized with " + param + " not available." );
+	return iter->second->getAbstraction ( );
 }
 
 ext::set < std::string > ContainerRegistry::listOverloads ( const std::string & container ) {
diff --git a/alib2abstraction/src/registry/ContainerRegistry.hpp b/alib2abstraction/src/registry/ContainerRegistry.hpp
index 8360f4c530e8b4c1fef9f9ea23be9af781d6931e..538fb86c326dca7d66293f0e910ab96c76ac3fb6 100644
--- a/alib2abstraction/src/registry/ContainerRegistry.hpp
+++ b/alib2abstraction/src/registry/ContainerRegistry.hpp
@@ -44,7 +44,7 @@ private:
 	static ext::map < std::string, ext::list < ext::pair < std::string, std::unique_ptr < Entry > > > > & getEntries ( );
 
 public:
-	static void unregisterSet ( std::string param ) {
+	static void unregisterSet ( const std::string & param ) {
 		std::string container = "Set";
 
 		auto & group = getEntries ( ) [ container ];
@@ -71,7 +71,7 @@ public:
 			if ( entry.first == param )
 				throw std::invalid_argument ( "Callback for " + param + " in contaier " + container + " already registered." );
 
-		group.insert ( group.end ( ), ext::make_pair ( param, std::make_unique < SetEntryImpl < ParamTypes > > ( ) ) );
+		group.insert ( group.end ( ), ext::make_pair ( std::move ( param ), std::make_unique < SetEntryImpl < ParamTypes > > ( ) ) );
 	}
 
 	template < class ParamTypes >
diff --git a/alib2std/src/extensions/container/ptr_value.hpp b/alib2std/src/extensions/container/ptr_value.hpp
index 3606667c73fe747836885eb6a49bd7674e517f90..d66bf7302a9492286c7188e71614a1b84756fd2f 100644
--- a/alib2std/src/extensions/container/ptr_value.hpp
+++ b/alib2std/src/extensions/container/ptr_value.hpp
@@ -109,6 +109,9 @@ public:
 	 * \param other the other instance
 	 */
 	ptr_value & operator = ( const ptr_value & other ) {
+		if ( this == & other )
+			return *this;
+
 		delete m_data;
 		m_data = ext::clone ( other.m_data );
 		return * this;
diff --git a/aql2/src/prompt/ReadlinePromptHistory.h b/aql2/src/prompt/ReadlinePromptHistory.h
index 87d076bb9344ba4586a43f1529213240420776ad..4e37c808076f04bcd346e2f325c07599edfabc57 100644
--- a/aql2/src/prompt/ReadlinePromptHistory.h
+++ b/aql2/src/prompt/ReadlinePromptHistory.h
@@ -65,13 +65,15 @@ class ReadlinePromptHistory {
 	template < class Callable >
 	static void history_transform ( Callable callable ) {
 		HIST_ENTRY ** history = history_list ( );
-		int i = 0;
-		if ( history ) while ( * history ) {
-			char * tmp = callable ( ( * history )->line );
-			replace_history_entry ( i, tmp, ( * history )->data );
-			free ( tmp );
-			++ history;
-			++ i;
+		if ( history ) {
+			unsigned i = 0;
+			while ( * history ) {
+				char * tmp = callable ( ( * history )->line );
+				replace_history_entry ( i, tmp, ( * history )->data );
+				free ( tmp );
+				++ history;
+				++ i;
+			}
 		}
 	}