diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/ExtendedFeature.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/ExtendedFeature.kt
index a534ef0f65f2ded15a7f55de7718d62e0dd084be..7b58f874bea2e46a0eba76563d4c531e3dd3af1d 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/ExtendedFeature.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/ExtendedFeature.kt
@@ -32,7 +32,7 @@ enum class ExtendedFeature {
   /** IRC server custom message rate limits */
   CustomRateLimits,
   // Currently not supported
-  // DccFileTransfer,
+  DccFileTransfer,
   /** Timestamp formatting in away (e.g. %%hh:mm%%) */
   AwayFormatTimestamp,
   /** Whether or not the core supports auth backends. */
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt
index 2d152a87ab1df733608e3928d91baa86850844ed..0ca6f14724414166090507651b3bff3726a2a37e 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/LegacyFeature.kt
@@ -31,8 +31,7 @@ import de.kuschku.libquassel.util.flag.Flags
  *
  * This list should be cleaned up after every protocol break, as we can assume them to be present then.
  */
-enum class LegacyFeature(override val bit: Int) :
-  Flag<LegacyFeature> {
+enum class LegacyFeature(override val bit: Int) : Flag<LegacyFeature> {
   SynchronizedMarkerLine(0x0001),
   SaslAuthentication(0x0002),
   SaslExternal(0x0004),
@@ -62,7 +61,6 @@ enum class LegacyFeature(override val bit: Int) :
 
   companion object : Flags.Factory<LegacyFeature> {
     override val NONE: Flags<LegacyFeature> = LegacyFeature.of()
-    val validValues = values().filter { it.bit != 0 }.toTypedArray()
     override fun of(bit: Int) = Flags.of<LegacyFeature>(bit)
     override fun of(vararg flags: LegacyFeature) = Flags.of(*flags)
     override fun of(flags: Iterable<LegacyFeature>) = Flags.of(flags)
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt
index b532b237accecdb174545a4363943869b77f0932..3ce719b3952bbcd0ed3a6bcd73008c1df00421c2 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/QuasselFeatures.kt
@@ -40,6 +40,10 @@ class QuasselFeatures(
 
   companion object {
     fun empty() = QuasselFeatures(emptySet(), emptySet())
-    fun all() = QuasselFeatures(ExtendedFeature.values().toSet(), emptySet())
+    fun all() = QuasselFeatures(
+      // Dcc is disabled
+      ExtendedFeature.values().toSet() - ExtendedFeature.DccFileTransfer,
+      emptySet()
+    )
   }
 }
diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt
index f7aa06bc3045617afe6177a101a5adebbc39a87d..5f28aff0fc0abe1c3451de81f6d32c2cdd354de9 100644
--- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt
+++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt
@@ -19,10 +19,7 @@
 
 package de.kuschku.libquassel.protocol.primitive.serializer
 
-import de.kuschku.libquassel.protocol.Buffer_Type
-import de.kuschku.libquassel.protocol.Message
-import de.kuschku.libquassel.protocol.Message_Flag
-import de.kuschku.libquassel.protocol.Message_Type
+import de.kuschku.libquassel.protocol.*
 import de.kuschku.libquassel.quassel.BufferInfo
 import de.kuschku.libquassel.quassel.QuasselFeatures
 import de.kuschku.libquassel.util.roundTrip
@@ -58,13 +55,13 @@ class MessageSerializerTest {
   @Test
   fun testNormalNoFeatures() {
     val value = Message(
-      Int.MAX_VALUE,
+      Int.MAX_VALUE.toLong(),
       Instant.ofEpochMilli(1524601750000),
       Message_Type.of(*Message_Type.values()),
       Message_Flag.of(*Message_Flag.values()),
       BufferInfo(
-        Int.MAX_VALUE,
-        Int.MAX_VALUE,
+        BufferId.MAX_VALUE,
+        NetworkId.MAX_VALUE,
         Buffer_Type.of(*Buffer_Type.validValues),
         Int.MAX_VALUE,
         "äẞ\u0000\uFFFF"
@@ -106,13 +103,13 @@ class MessageSerializerTest {
   @Test
   fun testNormalAllFeatures() {
     val value = Message(
-      Int.MAX_VALUE,
+      MsgId.MAX_VALUE,
       Instant.ofEpochMilli(1524601750000),
       Message_Type.of(*Message_Type.values()),
       Message_Flag.of(*Message_Flag.values()),
       BufferInfo(
-        Int.MAX_VALUE,
-        Int.MAX_VALUE,
+        BufferId.MAX_VALUE,
+        NetworkId.MAX_VALUE,
         Buffer_Type.of(*Buffer_Type.validValues),
         Int.MAX_VALUE,
         "äẞ\u0000\uFFFF"
@@ -130,13 +127,13 @@ class MessageSerializerTest {
   @Test
   fun testExtremeAllFeatures() {
     val value = Message(
-      Int.MAX_VALUE,
+      MsgId.MAX_VALUE,
       Instant.ofEpochMilli(Int.MAX_VALUE * 10000L),
       Message_Type.of(*Message_Type.values()),
       Message_Flag.of(*Message_Flag.values()),
       BufferInfo(
-        Int.MAX_VALUE,
-        Int.MAX_VALUE,
+        BufferId.MAX_VALUE,
+        NetworkId.MAX_VALUE,
         Buffer_Type.of(*Buffer_Type.validValues),
         Int.MAX_VALUE,
         "äẞ\u0000\uFFFF"