diff --git a/libwccl/ops/opsequence.h b/libwccl/ops/opsequence.h
index cfa3b5709d84c8e71f006bf686c6d8350c980be3..54eb9e7ad4c95a9781339d1a3cb5292e61534eb6 100644
--- a/libwccl/ops/opsequence.h
+++ b/libwccl/ops/opsequence.h
@@ -182,7 +182,7 @@ class OpSequence : public FunctionalOpSequence
 	BOOST_MPL_ASSERT( (boost::is_base_of<Value, T>) );
 	BOOST_MPL_ASSERT_NOT( (boost::is_same<Value, T>) );
 public:
-	typedef typename Operator<T> op_t;
+	typedef Operator<T> op_t;
 	typedef typename boost::shared_ptr<Operator<T> > op_ptr_t;
 	typedef typename boost::shared_ptr<const Operator<T> > op_ptr_c_t;
 	typedef typename std::pair<std::string, op_ptr_t> name_op_pair_t;
@@ -331,7 +331,7 @@ OpSequence<T>::OpSequence(const OpSequence<T>& seq)
 }
 
 template<class T> inline
-typename OpSequence<T>* OpSequence<T>::clone_internal() const
+OpSequence<T>* OpSequence<T>::clone_internal() const
 {
 	return new OpSequence(*this);
 }
diff --git a/libwccl/wcclfile.h b/libwccl/wcclfile.h
index 2897b4a0bd7e0709f6805bd8398fad6f714f9ab5..1e8f685a14d6f9d8aec8093c29356743e46d536e 100644
--- a/libwccl/wcclfile.h
+++ b/libwccl/wcclfile.h
@@ -25,7 +25,7 @@ public:
 
 	const std::vector<boost::shared_ptr<UntypedOpSequence> >& untyped_sections();
 	template<class T>
-	typename const std::vector<boost::shared_ptr<OpSequence<T> > >& sections();
+	const typename std::vector<boost::shared_ptr<OpSequence<T> > >& sections();
 
 	bool has_untyped_section(const std::string& name) const;
 	template<class T>
@@ -122,7 +122,7 @@ const std::vector<boost::shared_ptr<UntypedOpSequence> >& WcclFile::untyped_sect
 }
 
 template<class T> inline
-typename const std::vector<boost::shared_ptr<OpSequence<T> > >& WcclFile::sections()
+const typename std::vector<boost::shared_ptr<OpSequence<T> > >& WcclFile::sections()
 {
 	return WcclFileOpSections<OpSequence<T> >::sections();
 }
@@ -164,13 +164,13 @@ const UntypedOpSequence& WcclFile::get_untyped_section(const std::string& name)
 }
 
 template<class T> inline
-typename OpSequence<T>& WcclFile::get_section(const std::string& name)
+OpSequence<T>& WcclFile::get_section(const std::string& name)
 {
 	return WcclFileOpSections<OpSequence<T> >::get_section(name);
 }
 
 template<class T> inline
-typename const OpSequence<T>& WcclFile::get_section(const std::string& name) const
+const OpSequence<T>& WcclFile::get_section(const std::string& name) const
 {
 	return WcclFileOpSections<OpSequence<T> >::get_section(name);
 }
@@ -211,13 +211,13 @@ const FunctionalOperator& WcclFile::get_untyped_op(const std::string& name, size
 }
 
 template<class T> inline
-typename Operator<T>& WcclFile::get_op(const std::string& name, size_t idx)
+Operator<T>& WcclFile::get_op(const std::string& name, size_t idx)
 {
 	return WcclFileOpSections<Operator<T> >::get_op(name, idx);
 }
 
 template<class T> inline
-typename const Operator<T>& WcclFile::get_op(const std::string& name, size_t idx) const
+const Operator<T>& WcclFile::get_op(const std::string& name, size_t idx) const
 {
 	return WcclFileOpSections<Operator<T> >::get_op(name, idx);
 }
diff --git a/libwccl/wcclfileopsections.h b/libwccl/wcclfileopsections.h
index 409efcaaf0ac34f02b3fdf9e9c0f08a4acedfd48..49e7ae77194db4017e2c0b4546432a2cdc6a2b13 100644
--- a/libwccl/wcclfileopsections.h
+++ b/libwccl/wcclfileopsections.h
@@ -79,7 +79,7 @@ bool WcclFileOpSections<T>::has_section(const std::string& name) const
 }
 
 template<class T> inline
-typename const WcclFileOpSections<T>::ptr_v_t& WcclFileOpSections<T>::sections()
+const typename WcclFileOpSections<T>::ptr_v_t& WcclFileOpSections<T>::sections()
 {
 	return sections_;
 }
@@ -109,7 +109,7 @@ std::vector<std::string> WcclFileOpSections<T>::section_names() const
 template<class T> inline
 typename WcclFileOpSections<T>::ptr_t WcclFileOpSections<T>::get_section_ptr(const std::string& name)
 {
-	map_t::iterator i = name_section_map_.find(name);
+	typename map_t::iterator i = name_section_map_.find(name);
 	if (i == name_section_map_.end()) {
 		throw InvalidArgument("name", "Section named \"" + name + "\" does not exist.");
 	}
@@ -119,7 +119,7 @@ typename WcclFileOpSections<T>::ptr_t WcclFileOpSections<T>::get_section_ptr(con
 template<class T> inline
 typename WcclFileOpSections<T>::ptr_c_t WcclFileOpSections<T>::get_section_ptr(const std::string& name) const
 {
-	map_t::const_iterator i = name_section_map_.find(name);
+	typename map_t::const_iterator i = name_section_map_.find(name);
 	if (i == name_section_map_.end()) {
 		throw InvalidArgument("name", "Section named \"" + name + "\" does not exist.");
 	}
@@ -189,15 +189,15 @@ void WcclFileOpSections<T>::append(const ptr_t& section)
 template<class T> inline
 typename T::op_t& WcclFileOpSections<T>::get_op(
 	const std::string& name,
-	size_t idx = 0)
+	size_t idx)
 {
 	return get_section(name).get(idx);
 }
 
 template<class T> inline
-typename const T::op_t& WcclFileOpSections<T>::get_op(
+const typename T::op_t& WcclFileOpSections<T>::get_op(
 	const std::string& name,
-	size_t idx = 0) const
+	size_t idx) const
 {
 	return get_section(name).get(idx);
 }
@@ -205,7 +205,7 @@ typename const T::op_t& WcclFileOpSections<T>::get_op(
 template<class T> inline
 typename WcclFileOpSections<T>::op_ptr_t WcclFileOpSections<T>::get_op_ptr(
 	const std::string& name,
-	size_t idx = 0)
+	size_t idx)
 {
 	return get_section(name).get_ptr(idx);
 }
@@ -213,7 +213,7 @@ typename WcclFileOpSections<T>::op_ptr_t WcclFileOpSections<T>::get_op_ptr(
 template<class T> inline
 typename WcclFileOpSections<T>::op_ptr_c_t WcclFileOpSections<T>::get_op_ptr(
 	const std::string& name,
-	size_t idx = 0) const
+	size_t idx) const
 {
 	return get_section(name).get_ptr(idx);
 }