diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt
index 28cec020ef9c467148cf604c52b18611a434b0ff..7a355907569209da6186200adfaaf094265fdf3f 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/identity/IdentityCreateFragment.kt
@@ -25,7 +25,7 @@ class IdentityCreateFragment : IdentityBaseFragment(true) {
   override fun onSave() = modelHelper.connectedSession.value?.orNull()?.let { session ->
     identity?.let { (_, data) ->
       applyChanges(data)
-      session.rpcHandler.createIdentity(data, mapOf())
+      session.rpcHandler.createIdentity(data.toVariantMap(), mapOf())
       true
     } ?: false
   } ?: false
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragment.kt
index 69b848b9107ac8f690c21c967e79448dcce071ed..b050cb1c7afdacc9952ada48e0ae774acf454170 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/network/NetworkCreateFragment.kt
@@ -27,7 +27,7 @@ class NetworkCreateFragment : NetworkBaseFragment(true) {
     network?.let { (_, data) ->
       applyChanges(data)
       modelHelper.backend.value?.ifPresent(Backend::requestConnectNewNetwork)
-      session.rpcHandler.createNetwork(data.networkInfo(), emptyList())
+      session.rpcHandler.createNetwork(data.networkInfo().toVariantMap(), emptyList())
       true
     }
   } ?: false
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
index fb663a71c55713a45a73dd049339998b3bdc463a..8ba106829f061da5673144799528de45dffa18d4 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupActivity.kt
@@ -74,7 +74,7 @@ class NetworkSetupActivity : ServiceBoundSetupActivity() {
                     port = network.server.port,
                     useSsl = network.server.secure
                   ))
-                ), data.getStringArray("channels")?.toList().orEmpty())
+                ).toVariantMap(),data.getStringArray("channels")?.toList().orEmpty())
                 backend.requestConnectNewNetwork()
               }
             }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupActivity.kt
index eb5bdfd225b1c3bad7573517a7924386da6370b5..58641d0aa596e4ae092cf1e10916a66182a127dd 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/user/UserSetupActivity.kt
@@ -56,7 +56,7 @@ class UserSetupActivity : ServiceBoundSetupActivity() {
             setIdentityName(this@UserSetupActivity.getString(R.string.default_identity_identity_name))
             setNicks(listOf(data.getString("nick")))
             setRealName(data.getString("realname"))
-          }, emptyMap())
+          }.toVariantMap(), emptyMap())
 
           modelHelper.identities
             .map(Map<IdentityId, Identity>::values)
@@ -75,7 +75,7 @@ class UserSetupActivity : ServiceBoundSetupActivity() {
                       useSsl = it.secure
                     )
                   }
-                ), data.getStringArray("channels")?.toList().orEmpty())
+                ).toVariantMap(), data.getStringArray("channels")?.toList().orEmpty())
 
                 backend.requestConnectNewNetwork()
               }
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt
index e65feb9e983157257f8cb7f98cdfb4e5d6606fc9..bb65bb1a0b8d551e12c4080b78ef19467c121725 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IRpcHandler.kt
@@ -128,7 +128,7 @@ interface IRpcHandler : ISyncableObject {
   }
 
   @SyncedCall(name = "2createIdentity(Identity,QVariantMap)", target = ProtocolSide.CORE)
-  fun createIdentity(identity: IIdentity, additional: QVariantMap) {
+  fun createIdentity(identity: QVariantMap, additional: QVariantMap) {
     rpc(
       target = ProtocolSide.CORE,
       "2createIdentity(Identity,QVariantMap)",
@@ -147,7 +147,7 @@ interface IRpcHandler : ISyncableObject {
   }
 
   @SyncedCall(name = "2createNetwork(NetworkInfo,QStringList)", target = ProtocolSide.CORE)
-  fun createNetwork(networkInfo: INetwork.NetworkInfo, channels: List<String>) {
+  fun createNetwork(networkInfo: QVariantMap, channels: List<String>) {
     rpc(
       target = ProtocolSide.CORE,
       "2createNetwork(NetworkInfo,QStringList)",