diff --git a/briar-android/src/org/briarproject/android/BaseActivity.java b/briar-android/src/org/briarproject/android/BaseActivity.java
index 6eabbc7df8674d701d5deadc211fc2c495e16a11..a36252747158257bfb15dc3144089c7b878c2fbe 100644
--- a/briar-android/src/org/briarproject/android/BaseActivity.java
+++ b/briar-android/src/org/briarproject/android/BaseActivity.java
@@ -166,4 +166,10 @@ public abstract class BaseActivity extends AppCompatActivity
 		Object o = getSystemService(INPUT_METHOD_SERVICE);
 		((InputMethodManager) o).showSoftInput(view, SHOW_IMPLICIT);
 	}
+
+	protected void hideSoftKeyboard(View view) {
+		Object o = getSystemService(INPUT_METHOD_SERVICE);
+		((InputMethodManager) o).hideSoftInputFromWindow(view.getWindowToken(),
+				0);
+	}
 }
diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java
index 60b7cd118b89c09d2232fc6c49ae0d2ca553ce18..353cb0953623da46f5e70557db19c9b60c0c191d 100644
--- a/briar-android/src/org/briarproject/android/PasswordActivity.java
+++ b/briar-android/src/org/briarproject/android/PasswordActivity.java
@@ -69,7 +69,7 @@ public class PasswordActivity extends BaseActivity {
 			@Override
 			public boolean onEditorAction(TextView v, int actionId,
 					KeyEvent event) {
-				toggleSoftKeyboard();
+				hideSoftKeyboard(password);
 				validatePassword(encrypted, password.getText());
 				return true;
 			}
@@ -126,7 +126,7 @@ public class PasswordActivity extends BaseActivity {
 	}
 
 	private void validatePassword(final byte[] encrypted, Editable e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(password);
 		// Replace the button with a progress bar
 		signInButton.setVisibility(INVISIBLE);
 		progress.setVisibility(VISIBLE);
diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java
index f80b3d3136c359d977e7bcab4e424991914296a6..380792bf187b7c92294b2aca0d01e7a9d97bd0eb 100644
--- a/briar-android/src/org/briarproject/android/SetupActivity.java
+++ b/briar-android/src/org/briarproject/android/SetupActivity.java
@@ -129,7 +129,7 @@ public class SetupActivity extends BaseActivity implements OnClickListener,
 	}
 
 	public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(v);
 		return true;
 	}
 
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index a0d553711534de614e8a2c6e0b68e5608bbc81fb..e50540bc2982039a166cd8eb11c5f41608d46c6d 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -411,7 +411,7 @@ public class ConversationActivity extends BriarActivity
 		timestamp = Math.max(timestamp, getMinTimestampForNewMessage());
 		createMessage(StringUtils.toUtf8(message), timestamp);
 		content.setText("");
-		toggleSoftKeyboard();
+		hideSoftKeyboard(content);
 	}
 
 	private long getMinTimestampForNewMessage() {
diff --git a/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java b/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
index 750a98483f4372076acb50222c4b0f99c43ba261..5fc968a961b66ced3bd4d6116fde70dbba19f07b 100644
--- a/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
@@ -110,7 +110,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public boolean onEditorAction(TextView textView, int actionId, KeyEvent e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(textView);
 		return true;
 	}
 
@@ -126,7 +126,7 @@ implements OnEditorActionListener, OnClickListener {
 
 	public void onClick(View view) {
 		if (view == createForumButton) {
-			toggleSoftKeyboard();
+			hideSoftKeyboard(view);
 			if (!validateName()) return;
 			createForumButton.setVisibility(GONE);
 			progress.setVisibility(VISIBLE);
diff --git a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
index 660470e88bb09ccf4eafe2eefbfa7177daad34fc..2b293e4e05b873bd94ffbd650dde6d7c856ecfc3 100644
--- a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
+++ b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
@@ -118,7 +118,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public boolean onEditorAction(TextView textView, int actionId, KeyEvent e) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(textView);
 		return true;
 	}
 
@@ -134,7 +134,7 @@ implements OnEditorActionListener, OnClickListener {
 	}
 
 	public void onClick(View view) {
-		toggleSoftKeyboard();
+		hideSoftKeyboard(view);
 		if (!validateNickname()) return;
 		// Replace the button with a progress bar
 		createIdentityButton.setVisibility(GONE);