diff --git a/source/dub/dependency.d b/source/dub/dependency.d
index 90d5e4e..02a9ef5 100644
--- a/source/dub/dependency.d
+++ b/source/dub/dependency.d
@@ -260,7 +260,7 @@
 			auto strhash = &typeid(string).getHash;
 			auto str = this.toString();
 			return strhash(&str);
-		} catch assert(false);
+		} catch (Throwable) assert(false);
 	}
 
 	bool valid() const {
diff --git a/source/dub/internal/utils.d b/source/dub/internal/utils.d
index c88b5a2..7aa7618 100644
--- a/source/dub/internal/utils.d
+++ b/source/dub/internal/utils.d
@@ -49,7 +49,7 @@
 	auto fname = p ~ format("__dub_write_test_%08X", uniform(0, uint.max));
 	if (create_if_missing && !exists(p.toNativeString())) mkdirRecurse(p.toNativeString());
 	try openFile(fname, FileMode.CreateTrunc).close();
-	catch return false;
+	catch (Throwable) return false;
 	remove(fname.toNativeString());
 	return true;
 }
diff --git a/source/dub/internal/vibecompat/data/json.d b/source/dub/internal/vibecompat/data/json.d
index c0babc7..22e12f1 100644
--- a/source/dub/internal/vibecompat/data/json.d
+++ b/source/dub/internal/vibecompat/data/json.d
@@ -876,7 +876,7 @@
 */
 Json serializeToJson(T)(T value)
 {
-	alias Unqual!T TU;
+	alias TU = Unqual!T;
 	static if( is(TU == Json) ) return value;
 	else static if( is(TU == typeof(null)) ) return Json(null);
 	else static if( is(TU == bool) ) return Json(value);
@@ -950,13 +950,13 @@
 	else static if( is(T : long) ) return cast(T)src.get!long;
 	else static if( is(T == string) ) return src.get!string;
 	else static if( isArray!T ){
-		alias typeof(T.init[0]) TV;
+		alias TV = typeof(T.init[0]) ;
 		auto dst = new Unqual!TV[src.length];
 		foreach( size_t i, v; src )
 			dst[i] = deserializeJson!(Unqual!TV)(v);
 		return dst;
 	} else static if( isAssociativeArray!T ){
-		alias typeof(T.init.values[0]) TV;
+		alias TV = typeof(T.init.values[0]) ;
 		Unqual!TV[string] dst;
 		foreach( string key, value; src )
 			dst[key] = deserializeJson!(Unqual!TV)(value);
@@ -969,7 +969,7 @@
 		T dst;
 		foreach( m; __traits(allMembers, T) ){
 			static if( isRWPlainField!(T, m) || isRWField!(T, m) ){
-				alias typeof(__traits(getMember, dst, m)) TM;
+				alias TM = typeof(__traits(getMember, dst, m)) ;
 				__traits(getMember, dst, m) = deserializeJson!TM(src[underscoreStrip(m)]);
 			}
 		}
@@ -979,14 +979,14 @@
 		auto dst = new T;
 		foreach( m; __traits(allMembers, T) ){
 			static if( isRWPlainField!(T, m) || isRWField!(T, m) ){
-				alias typeof(__traits(getMember, dst, m)) TM;
+				alias TM = typeof(__traits(getMember, dst, m)) ;
 				__traits(getMember, dst, m) = deserializeJson!TM(src[underscoreStrip(m)]);
 			}
 		}
 		return dst;
 	} else static if( isPointer!T ){
 		if( src.type == Json.Type.null_ ) return null;
-		alias typeof(*T.init) TD;
+		alias TD = typeof(*T.init) ;
 		dst = new TD;
 		*dst = deserializeJson!TD(src);
 		return dst;
diff --git a/source/dub/internal/vibecompat/inet/path.d b/source/dub/internal/vibecompat/inet/path.d
index fbe1557..b3cb023 100644
--- a/source/dub/internal/vibecompat/inet/path.d
+++ b/source/dub/internal/vibecompat/inet/path.d
@@ -261,7 +261,7 @@
 		hash_t ret;
 		auto strhash = &typeid(string).getHash;
 		try foreach (n; nodes) ret ^= strhash(&n.m_name);
-		catch assert(false);
+		catch (Throwable) assert(false);
 		if (m_absolute) ret ^= 0xfe3c1738;
 		if (m_endsWithSlash) ret ^= 0x6aa4352d;
 		return ret;
diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d
index 8db4046..97f5b67 100644
--- a/source/dub/packagemanager.d
+++ b/source/dub/packagemanager.d
@@ -640,7 +640,7 @@
 		loadOverrides(LocalPackageType.system);
 	}
 
-	alias ubyte[] Hash;
+	alias Hash = ubyte[];
 	/// Generates a hash value for a given package.
 	/// Some files or folders are ignored during the generation (like .dub and
 	/// .svn folders)