diff --git a/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/asTypeName.kt b/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/asTypeName.kt
index b190e18ef94b39167858dc2e446943d2aea9f6d3..492e8ff280a370cabb2c4ce442f8a3362c8b6077 100644
--- a/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/asTypeName.kt
+++ b/libquassel-generator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/asTypeName.kt
@@ -27,11 +27,13 @@ fun KSTypeReference.asTypeName(): TypeName = resolve().asTypeName()
 fun KSType.asTypeName(): TypeName {
   when (val decl = declaration) {
     is KSTypeAlias -> return decl.type.resolve().asTypeName()
+      .copy(nullable = isMarkedNullable)
   }
 
   val baseType = asClassName()
   if (arguments.isEmpty()) {
     return baseType
+      .copy(nullable = isMarkedNullable)
   }
 
   val parameters = arguments.map {
@@ -53,4 +55,5 @@ fun KSType.asTypeName(): TypeName {
   }
 
   return baseType.parameterizedBy(parameters)
+    .copy(nullable = isMarkedNullable)
 }