diff --git a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
index c4fc69b0ab24568027abf755bab407033a1a6a6d..c197ac8f58b478170669e2bbaf068cfc0677a940 100644
--- a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
+++ b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
@@ -174,11 +174,9 @@ implements InvitationListener {
 	}
 
 	void reset(AddContactView view) {
-		// Note: localAuthorId is not reset
+		// Don't reset localAuthorId, networkName or useBluetooth
 		task = null;
 		taskHandle = -1;
-		networkName = null;
-		useBluetooth = false;
 		localInvitationCode = -1;
 		localConfirmationCode = remoteConfirmationCode = -1;
 		connectionFailed = false;
@@ -255,12 +253,14 @@ implements InvitationListener {
 	}
 
 	void remoteInvitationCodeEntered(int code) {
-		setView(new ConnectionView(this));
 		if(localAuthorId == null) throw new IllegalStateException();
 		if(localInvitationCode == -1) throw new IllegalStateException();
+		setView(new ConnectionView(this));
 		task = invitationTaskFactory.createTask(localAuthorId,
 				localInvitationCode, code);
 		taskHandle = referenceManager.putReference(task, InvitationTask.class);
+		// FIXME: Why can't the activity clean up the reference? If the task
+		// has a reference to the activity (as a listener), it won't be GCed
 		task.addListener(AddContactActivity.this);
 		task.addListener(new ReferenceCleaner(referenceManager, taskHandle));
 		task.connect();
diff --git a/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java b/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java
index 11b22c02a43d2bcbac0d1cea44b10012f11118e4..ba5e089d1163e3c87ea81d639416afe812359514 100644
--- a/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java
+++ b/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java
@@ -32,7 +32,6 @@ public class ConnectionView extends AddContactView {
 		code.setText(String.format("%06d", localCode));
 		addView(code);
 
-		// FIXME: These spinners don't appear when trying again after a failure
 		String networkName = container.getNetworkName();
 		if(networkName != null) {
 			LinearLayout innerLayout = new LinearLayout(ctx);
@@ -53,8 +52,7 @@ public class ConnectionView extends AddContactView {
 			addView(innerLayout);
 		}
 
-		boolean useBluetooth = container.getUseBluetooth();
-		if(useBluetooth) {
+		if(container.getUseBluetooth()) {
 			LinearLayout innerLayout = new LinearLayout(ctx);
 			innerLayout.setOrientation(HORIZONTAL);
 			innerLayout.setGravity(CENTER);