--- src/bindings.h.orig	2015-03-02 21:02:17.000000000 +0300
+++ src/bindings.h	2015-04-27 19:54:04.000000000 +0300
@@ -77,13 +77,14 @@
 	typedef std::vector<Actions::BaseAction *> ActionChain;
 	
 	template <typename ArgT>
-	Binding(ArgT &&actions)
-	: m_actions(std::forward<ArgT>(actions)) {
-		assert(!m_actions.empty());
+	Binding(ArgT &&actions) {
+		super_init(actions);
 	}
-	Binding(Actions::Type at)
-	: Binding(ActionChain({&Actions::get(at)})) { }
-	
+
+	Binding(Actions::Type at) {
+		super_init(ActionChain({&Actions::get(at)}));
+	}
+
 	bool execute() const {
 		return std::all_of(m_actions.begin(), m_actions.end(),
 			boost::bind(&Actions::BaseAction::execute, _1)
@@ -100,6 +101,12 @@
 	}
 
 private:
+	template <typename ArgT>
+	void super_init(ArgT &&actions) {
+		m_actions = std::forward<ArgT>(actions);
+		assert(!m_actions.empty());
+	}
+
 	ActionChain m_actions;
 };
 
--- src/utility/conversion.h.orig	2015-03-02 21:02:17.000000000 +0300
+++ src/utility/conversion.h	2015-04-27 19:51:38.000000000 +0300
@@ -41,6 +41,8 @@
 
 struct OutOfBounds : std::exception
 {
+	~OutOfBounds() throw() { }
+
 	const std::string &errorMessage() { return m_error_message; }
 	
 	template <typename Type>
