diff --git a/res/layout/account_row.xml b/res/layout/account_row.xml
index 5494e4365..230a5a982 100644
--- a/res/layout/account_row.xml
+++ b/res/layout/account_row.xml
@@ -28,14 +28,14 @@
             android:scrollHorizontally="false"
             android:singleLine="true"
             android:textColor="@color/primarytext"
-            android:textSize="18sp" />
+            android:textSize="?attr/TextSizeHeadline" />
 
         <TextView
             android:id="@+id/account_status"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/account_status_unknown"
-            android:textSize="14sp"
+            android:textSize="?attr/TextSizeBody"
             android:textColor="@color/secondarytext"
             android:textStyle="bold"/>
     </LinearLayout>
diff --git a/res/layout/activity_contact_details.xml b/res/layout/activity_contact_details.xml
index a00b23406..b3672e599 100644
--- a/res/layout/activity_contact_details.xml
+++ b/res/layout/activity_contact_details.xml
@@ -44,7 +44,7 @@
                 android:layout_height="wrap_content"
                 android:paddingLeft="8dp"
                 android:singleLine="true"
-                android:textSize="14sp"
+                android:textSize="?attr/TextSizeBody"
                 android:textColor="@color/primarytext"/>
 
             <TextView
@@ -52,7 +52,7 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:paddingLeft="16dp"
-                android:textSize="18sp"
+                android:textSize="?attr/TextSizeHeadline"
                 android:textColor="@color/primarytext"
                 android:textStyle="bold" />
             <TextView
@@ -61,7 +61,7 @@
                 android:layout_height="wrap_content"
                 android:paddingLeft="8dp"
                 android:singleLine="true"
-                android:textSize="14sp"
+                android:textSize="?attr/TextSizeBody"
                 android:textColor="@color/primarytext"/>
         </LinearLayout>
           
@@ -80,7 +80,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:paddingLeft="8dp"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext" />
    <TextView
         style="@style/sectionHeader"
@@ -95,7 +95,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/send_presence_updates"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext" />
 
         <CheckBox
@@ -103,7 +103,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/receive_presence_updates"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext" />
  <TextView
         style="@style/sectionHeader"
diff --git a/res/layout/activity_edit_account.xml b/res/layout/activity_edit_account.xml
index 2c08b9261..04f63795a 100644
--- a/res/layout/activity_edit_account.xml
+++ b/res/layout/activity_edit_account.xml
@@ -27,7 +27,7 @@
                     android:layout_height="wrap_content"
                     android:text="@string/account_settings_jabber_id"
                     android:textColor="@color/primarytext"
-                    android:textSize="14sp" />
+                    android:textSize="?attr/TextSizeBody" />
 
                 <AutoCompleteTextView
                     android:id="@+id/account_jid"
@@ -42,7 +42,7 @@
                     android:layout_marginTop="8dp"
                     android:text="@string/account_settings_password"
                     android:textColor="@color/primarytext"
-                    android:textSize="14sp" />
+                    android:textSize="?attr/TextSizeBody" />
 
                 <EditText
                     android:id="@+id/account_password"
@@ -58,7 +58,7 @@
                     android:layout_marginTop="8dp"
                     android:text="@string/register_account"
                     android:textColor="@color/primarytext"
-                    android:textSize="14sp" />
+                    android:textSize="?attr/TextSizeBody" />
 
                 <TextView
                     android:id="@+id/account_confirm_password_desc"
@@ -66,7 +66,7 @@
                     android:layout_height="wrap_content"
                     android:text="@string/account_settings_confirm_password"
                     android:textColor="@color/primarytext"
-                    android:textSize="14sp"
+                    android:textSize="?attr/TextSizeBody"
                     android:visibility="gone" />
 
                 <EditText
@@ -94,7 +94,7 @@
                     android:gravity="center_horizontal"
                     android:text="@string/additional_information"
                     android:textColor="@color/secondarytext"
-                    android:textSize="18sp"
+                    android:textSize="?attr/TextSizeHeadline"
                     android:textStyle="bold" />
 
                 <TableLayout
@@ -177,7 +177,7 @@
                     android:gravity="center_horizontal"
                     android:text="@string/otr_fingerprint"
                     android:textColor="@color/secondarytext"
-                    android:textSize="18sp"
+                    android:textSize="?attr/TextSizeHeadline"
                     android:textStyle="bold" />
 
                 <TextView
@@ -185,7 +185,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="8dp"
-                    android:textSize="14sp"
+                    android:textSize="?attr/TextSizeBody"
                     android:typeface="monospace" />
             </LinearLayout>
         </LinearLayout>
diff --git a/res/layout/activity_muc_details.xml b/res/layout/activity_muc_details.xml
index 49b4cef3a..c3eb263dc 100644
--- a/res/layout/activity_muc_details.xml
+++ b/res/layout/activity_muc_details.xml
@@ -24,7 +24,7 @@
             android:singleLine="true"
             android:text="@string/account_settings_example_jabber_id"
             android:textColor="@color/primarytext"
-            android:textSize="14sp"/>
+            android:textSize="?attr/TextSizeBody"/>
 
         <TextView
             style="@style/sectionHeader"
@@ -64,7 +64,7 @@
                     android:layout_height="wrap_content"
                     android:singleLine="true"
                     android:textColor="@color/primarytext"
-                    android:textSize="18sp" />
+                    android:textSize="?attr/TextSizeHeadline" />
 
                 <TextView
                     android:id="@+id/muc_role"
@@ -72,7 +72,7 @@
                     android:layout_height="wrap_content"
                     android:singleLine="true"
                     android:textColor="@color/primarytext"
-                    android:textSize="14sp" />
+                    android:textSize="?attr/TextSizeBody" />
             </LinearLayout>
 
             <ImageButton
diff --git a/res/layout/activity_publish_profile_picture.xml b/res/layout/activity_publish_profile_picture.xml
index e5d9d1a05..f23ae6c41 100644
--- a/res/layout/activity_publish_profile_picture.xml
+++ b/res/layout/activity_publish_profile_picture.xml
@@ -90,7 +90,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textColor="@color/primarytext"
-            android:textSize="18sp"/>
+            android:textSize="?attr/TextSizeHeadline"/>
         
         <TextView
             android:id="@+id/hint_or_warning"
@@ -99,7 +99,7 @@
             android:layout_height="wrap_content"
             android:text="@string/publish_avatar_explanation"
             android:textColor="@color/primarytext"
-            android:textSize="14sp"
+            android:textSize="?attr/TextSizeBody"
             android:minLines="3" />
     </LinearLayout>
 
diff --git a/res/layout/contact.xml b/res/layout/contact.xml
index f16ad0618..ff55ccac1 100644
--- a/res/layout/contact.xml
+++ b/res/layout/contact.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:padding="8dp"
-    android:paddingBottom="8dp"
-    android:background="?android:attr/activatedBackgroundIndicator">
+    android:background="?android:attr/activatedBackgroundIndicator"
+    android:padding="8dp" >
 
     <ImageView
         android:id="@+id/contact_photo"
@@ -12,40 +11,41 @@
         android:layout_height="48dp"
         android:layout_alignParentLeft="true"
         android:scaleType="centerCrop"
-        android:src="@drawable/ic_profile">
+        android:src="@drawable/ic_profile" >
     </ImageView>
+
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_toRightOf="@+id/contact_photo"
         android:layout_centerVertical="true"
+        android:layout_toRightOf="@+id/contact_photo"
         android:orientation="vertical"
-        android:paddingLeft="8dp">
-    <TextView 
-        android:id="@+id/contact_display_name"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="18sp"
-        android:textColor="@color/primarytext"
-        android:singleLine="true"
-        />
-    <TextView 
-        android:id="@+id/contact_jid"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:singleLine="true"
-        android:textSize="14sp"
-        android:textColor="@color/primarytext"
-        />
-    <TextView 
-        android:id="@+id/key"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textSize="18sp"
-        android:textColor="@color/primarytext"
-        android:typeface="monospace"
-        android:visibility="gone"
-        />
+        android:paddingLeft="8dp" >
+
+        <TextView
+            android:id="@+id/contact_display_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textSize="?attr/TextSizeHeadline"
+            android:textColor="@color/primarytext" />
+
+        <TextView
+            android:id="@+id/contact_jid"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textColor="@color/primarytext"
+            android:textSize="?attr/TextSizeBody" />
+
+        <TextView
+            android:id="@+id/key"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/primarytext"
+            android:textSize="?attr/TextSizeHeadline"
+            android:typeface="monospace"
+            android:visibility="gone" />
     </LinearLayout>
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/contact_key.xml b/res/layout/contact_key.xml
index fdd1ddba0..904523a10 100644
--- a/res/layout/contact_key.xml
+++ b/res/layout/contact_key.xml
@@ -16,7 +16,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textColor="@color/primarytext"
-            android:textSize="18sp"
+            android:textSize="?attr/TextSizeHeadline"
             android:typeface="monospace" />
 
         <TextView
diff --git a/res/layout/conversation_list_row.xml b/res/layout/conversation_list_row.xml
index a6001e5fb..8fdd64b7c 100644
--- a/res/layout/conversation_list_row.xml
+++ b/res/layout/conversation_list_row.xml
@@ -26,7 +26,7 @@
 	        android:layout_alignLeft="@+id/conversation_lastwrapper"
 	        android:layout_toLeftOf="@+id/conversation_lastupdate"
 	        android:singleLine="true"
-	        android:textSize="18sp"
+	        android:textSize="?attr/TextSizeHeadline"
 	        android:textColor="@color/primarytext"
 	        android:typeface="sans" />
 	 
@@ -42,7 +42,7 @@
 	        android:id="@+id/conversation_lastmsg"
 	        android:layout_width="fill_parent"
 	        android:layout_height="wrap_content"
-	        android:textSize="14sp"
+	        android:textSize="?attr/TextSizeBody"
 	        android:textColor="@color/primarytext"
 	        android:singleLine="true"
 	        android:scrollHorizontally="false"
@@ -63,7 +63,7 @@
 	        android:layout_alignBaseline="@+id/conversation_name"
 	        android:layout_alignParentRight="true"
 	        android:gravity="right"
-	        android:textSize="12sp"
+	        android:textSize="?attr/TextSizeInfo"
 	        android:textColor="@color/secondarytext"/>
 
  	</RelativeLayout>
diff --git a/res/layout/create_contact_dialog.xml b/res/layout/create_contact_dialog.xml
index 4b5b9a04a..a1e6f6ad2 100644
--- a/res/layout/create_contact_dialog.xml
+++ b/res/layout/create_contact_dialog.xml
@@ -9,7 +9,7 @@
         android:id="@+id/your_account"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext"
         android:text="@string/your_account" />
     <Spinner
@@ -22,7 +22,7 @@
         android:layout_marginTop="8dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext"
         android:text="@string/account_settings_jabber_id" />
     
diff --git a/res/layout/dialog_clear_history.xml b/res/layout/dialog_clear_history.xml
index 10ceaae57..7edb4b87a 100644
--- a/res/layout/dialog_clear_history.xml
+++ b/res/layout/dialog_clear_history.xml
@@ -8,7 +8,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/clear_histor_msg"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:paddingBottom="8dp"/>
     <CheckBox
         android:id="@+id/end_conversation_checkbox"
diff --git a/res/layout/dialog_verify_otr.xml b/res/layout/dialog_verify_otr.xml
index c518c6470..301f465a0 100644
--- a/res/layout/dialog_verify_otr.xml
+++ b/res/layout/dialog_verify_otr.xml
@@ -13,14 +13,14 @@
         android:paddingTop="8dp"
         android:text="Jabber ID"
         android:textColor="@color/primarytext"
-        android:textSize="18sp"/>
+        android:textSize="?attr/TextSizeHeadline"/>
 
     <TextView
         android:id="@+id/verify_otr_jid"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:paddingLeft="8dp"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/secondarytext"/>
      <TextView
         android:layout_width="wrap_content"
@@ -28,14 +28,14 @@
         android:paddingTop="8dp"
         android:text="@string/otr_fingerprint"
         android:textColor="@color/primarytext"
-        android:textSize="18sp"/>
+        android:textSize="?attr/TextSizeHeadline"/>
 
     <TextView
         android:id="@+id/verify_otr_fingerprint"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:paddingLeft="8dp"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:typeface="monospace"
         android:textColor="@color/secondarytext"/>
      <TextView
@@ -43,7 +43,7 @@
         android:layout_height="wrap_content"
         android:paddingTop="8dp"
         android:text="@string/your_fingerprint"
-        android:textSize="18sp"
+        android:textSize="?attr/TextSizeHeadline"
         android:textColor="@color/primarytext"/>
 
     <TextView
@@ -51,7 +51,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:paddingLeft="8dp"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:typeface="monospace"
         android:textColor="@color/secondarytext"/>
 </LinearLayout>
diff --git a/res/layout/fragment_conversation.xml b/res/layout/fragment_conversation.xml
index 3f7f27e50..b16e41132 100644
--- a/res/layout/fragment_conversation.xml
+++ b/res/layout/fragment_conversation.xml
@@ -81,7 +81,7 @@
                  android:layout_centerVertical="true"
                  android:paddingLeft="24dp"
                  android:textColor="@color/ondarktext"
-                 android:textSize="14sp" 
+                 android:textSize="?attr/TextSizeBody" 
                  android:layout_toLeftOf="@+id/snackbar_action"/>
 
              <TextView
@@ -96,7 +96,7 @@
                  android:paddingTop="16dp"
                  android:textAllCaps="true"
                  android:textColor="@color/ondarktext"
-                 android:textSize="14sp"
+                 android:textSize="?attr/TextSizeBody"
                  android:textStyle="bold" />
          </RelativeLayout>
 
diff --git a/res/layout/join_conference_dialog.xml b/res/layout/join_conference_dialog.xml
index 431bf59e7..a36a5ef78 100644
--- a/res/layout/join_conference_dialog.xml
+++ b/res/layout/join_conference_dialog.xml
@@ -9,7 +9,7 @@
         android:id="@+id/your_account"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext"
         android:text="@string/your_account" />
     <Spinner
@@ -22,7 +22,7 @@
         android:layout_marginTop="8dp"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textSize="14sp"
+        android:textSize="?attr/TextSizeBody"
         android:textColor="@color/primarytext"
         android:text="@string/conference_address" />
     
diff --git a/res/layout/message_received.xml b/res/layout/message_received.xml
index f7ff44d57..d85a4f8d0 100644
--- a/res/layout/message_received.xml
+++ b/res/layout/message_received.xml
@@ -44,7 +44,7 @@
                 android:autoLink="web"
                 android:textColor="@color/primarytext"
                 android:textIsSelectable="true"
-                android:textSize="14sp" />
+                android:textSize="?attr/TextSizeBody" />
 
             <Button
                 android:id="@+id/download_button"
@@ -62,8 +62,8 @@
 
                 <ImageView
                     android:id="@+id/security_indicator"
-                    android:layout_width="12sp"
-                    android:layout_height="12sp"
+                    android:layout_width="?attr/TextSizeInfo"
+                    android:layout_height="?attr/TextSizeInfo"
                     android:layout_gravity="center_vertical"
                     android:layout_marginRight="6sp"
                     android:layout_marginTop="2sp"
@@ -78,7 +78,7 @@
                     android:gravity="center_vertical"
                     android:text="@string/sending"
                     android:textColor="@color/secondarytext"
-                    android:textSize="12sp" />
+                    android:textSize="?attr/TextSizeInfo" />
             </LinearLayout>
         </LinearLayout>
     </LinearLayout>
diff --git a/res/layout/message_sent.xml b/res/layout/message_sent.xml
index 115140195..9728dc56d 100644
--- a/res/layout/message_sent.xml
+++ b/res/layout/message_sent.xml
@@ -44,7 +44,7 @@
                 android:autoLink="web"
                 android:textColor="@color/primarytext"
                 android:textIsSelectable="true"
-                android:textSize="14sp" />
+                android:textSize="?attr/TextSizeBody" />
 
             <LinearLayout
                 android:layout_width="wrap_content"
@@ -61,12 +61,12 @@
                     android:gravity="center_vertical"
                     android:text="@string/sending"
                     android:textColor="@color/secondarytext"
-                    android:textSize="12sp" />
+                    android:textSize="?attr/TextSizeInfo" />
 
                 <ImageView
                     android:id="@+id/security_indicator"
-                    android:layout_width="12sp"
-                    android:layout_height="12sp"
+                    android:layout_width="?attr/TextSizeInfo"
+                    android:layout_height="?attr/TextSizeInfo"
                     android:layout_gravity="center_vertical"
                     android:layout_marginLeft="6sp"
                     android:layout_marginTop="2sp"
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
new file mode 100644
index 000000000..793b5604b
--- /dev/null
+++ b/res/values/attrs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <attr name="TextSizeInfo" format="dimension"/>
+    <attr name="TextSizeBody" format="dimension"/>
+    <attr name="TextSizeHeadline" format="dimension"/>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 841620e25..75ddbbc45 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -108,6 +108,7 @@
     <string name="pref_never_send_crash_summary">By sending in stack traces you are helping the ongoing development of Conversations</string>
     <string name="pref_confirm_messages">Confirm Messages</string>
     <string name="pref_confirm_messages_summary">Let your contact know when you have received and read a message</string>
+    <string name="pref_ui_options">UI Options</string>
     <string name="openpgp_error">OpenKeychain reported an error</string>
     <string name="error_decrypting_file">I/O Error decrypting file</string>
     <string name="accept">Accept</string>
@@ -251,4 +252,6 @@
     <string name="pref_dont_save_encrypted_summary">Warning: This could lead to message loss</string>
 	<string name="pref_expert_options">Expert options</string>
 	<string name="pref_expert_options_summary">Please be very careful with those</string>
+	<string name="pref_use_larger_font">Increase font size</string>
+	<string name="pref_use_larger_font_summary">Use larger font sizes across the entire app</string>
 </resources>
\ No newline at end of file
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 97f1db8f8..e2d4dcbe4 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -5,6 +5,15 @@
         <item name="android:actionBarStyle">@style/ConversationsActionBar</item>
         <item name="android:actionBarWidgetTheme">@style/ConversationsActionBarWidget</item>
         <item name="android:actionBarTabStyle">@style/ConversationsActionBarTabs</item>
+        <item name="TextSizeInfo">12sp</item>
+        <item name="TextSizeBody">14sp</item>
+        <item name="TextSizeHeadline">20sp</item>
+    </style>
+    
+    <style name="ConversationsTheme.LargerText" parent="ConversationsTheme">
+        <item name="TextSizeInfo">14sp</item>
+        <item name="TextSizeBody">16sp</item>
+        <item name="TextSizeHeadline">22sp</item>
     </style>
 
     <style name="ConversationsActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 3d2f85c98..f0d64e39c 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -62,6 +62,14 @@
             android:summary="@string/pref_notification_grace_period_summary"
             android:title="@string/pref_notification_grace_period" />
     </PreferenceCategory>
+    <PreferenceCategory
+        android:title="@string/pref_ui_options">
+    <CheckBoxPreference
+            android:defaultValue="false"
+            android:key="use_larger_font"
+            android:title="@string/pref_use_larger_font"
+            android:summary="@string/pref_use_larger_font_summary"/>
+    </PreferenceCategory>
     <PreferenceCategory android:title="@string/pref_advanced_options" >
         <PreferenceScreen
             android:summary="@string/pref_expert_options_summary"
diff --git a/src/eu/siacs/conversations/Config.java b/src/eu/siacs/conversations/Config.java
index 6219b6b06..1725eca69 100644
--- a/src/eu/siacs/conversations/Config.java
+++ b/src/eu/siacs/conversations/Config.java
@@ -14,9 +14,9 @@ public final class Config {
 
 	public static final int AVATAR_SIZE = 192;
 	public static final Bitmap.CompressFormat AVATAR_FORMAT = Bitmap.CompressFormat.WEBP;
-	
+
 	public static final int MESSAGE_MERGE_WINDOW = 20;
-	
+
 	public static final boolean PARSE_EMOTICONS = false;
 
 	private Config() {
diff --git a/src/eu/siacs/conversations/crypto/OtrEngine.java b/src/eu/siacs/conversations/crypto/OtrEngine.java
index 46dd714f1..5dfd6fd61 100644
--- a/src/eu/siacs/conversations/crypto/OtrEngine.java
+++ b/src/eu/siacs/conversations/crypto/OtrEngine.java
@@ -174,7 +174,8 @@ public class OtrEngine implements OtrEngineHost {
 
 	@Override
 	public void messageFromAnotherInstanceReceived(SessionID id) {
-		Log.d(Config.LOGTAG,"unreadable message received from "+id.getAccountID());
+		Log.d(Config.LOGTAG,
+				"unreadable message received from " + id.getAccountID());
 	}
 
 	@Override
diff --git a/src/eu/siacs/conversations/crypto/PgpEngine.java b/src/eu/siacs/conversations/crypto/PgpEngine.java
index 2f678279c..e7058a683 100644
--- a/src/eu/siacs/conversations/crypto/PgpEngine.java
+++ b/src/eu/siacs/conversations/crypto/PgpEngine.java
@@ -106,8 +106,8 @@ public class PgpEngine {
 									outputFile.getAbsolutePath(), options);
 							int imageHeight = options.outHeight;
 							int imageWidth = options.outWidth;
-							message.setBody(Long.toString(outputFile.getSize()) + ','
-									+ imageWidth + ',' + imageHeight);
+							message.setBody(Long.toString(outputFile.getSize())
+									+ ',' + imageWidth + ',' + imageHeight);
 							message.setEncryption(Message.ENCRYPTION_DECRYPTED);
 							PgpEngine.this.mXmppConnectionService
 									.updateMessage(message);
@@ -301,7 +301,7 @@ public class PgpEngine {
 						os.flush();
 						String[] lines = os.toString().split("\n");
 						boolean sig = false;
-						for(String line : lines) {
+						for (String line : lines) {
 							if (sig) {
 								if (line.contains("END PGP SIGNATURE")) {
 									sig = false;
diff --git a/src/eu/siacs/conversations/entities/Message.java b/src/eu/siacs/conversations/entities/Message.java
index 5cbd68dde..ce496d271 100644
--- a/src/eu/siacs/conversations/entities/Message.java
+++ b/src/eu/siacs/conversations/entities/Message.java
@@ -149,9 +149,11 @@ public class Message extends AbstractEntity {
 
 	public String getReadableBody(Context context) {
 		if ((encryption == ENCRYPTION_PGP) && (type == TYPE_TEXT)) {
-			return context.getText(R.string.encrypted_message_received).toString();
+			return context.getText(R.string.encrypted_message_received)
+					.toString();
 		} else if ((encryption == ENCRYPTION_OTR) && (type == TYPE_IMAGE)) {
-			return context.getText(R.string.encrypted_image_received).toString();
+			return context.getText(R.string.encrypted_image_received)
+					.toString();
 		} else if (encryption == ENCRYPTION_DECRYPTION_FAILED) {
 			return context.getText(R.string.decryption_failed).toString();
 		} else if (type == TYPE_IMAGE) {
@@ -339,7 +341,7 @@ public class Message extends AbstractEntity {
 		}
 		return body.trim();
 	}
-	
+
 	public int getMergedStatus() {
 		Message next = this.next();
 		if (this.mergable(next)) {
@@ -348,7 +350,7 @@ public class Message extends AbstractEntity {
 			return getStatus();
 		}
 	}
-	
+
 	public long getMergedTimeSent() {
 		Message next = this.next();
 		if (this.mergable(next)) {
diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java
index 3988eae0c..e9ab6908a 100644
--- a/src/eu/siacs/conversations/entities/MucOptions.java
+++ b/src/eu/siacs/conversations/entities/MucOptions.java
@@ -158,8 +158,8 @@ public class MucOptions {
 						}
 						aboutToRename = false;
 					}
-					if (conversation.getBookmark() != null &&
-							conversation.getBookmark().isProvidePassword()) {
+					if (conversation.getBookmark() != null
+							&& conversation.getBookmark().isProvidePassword()) {
 						this.passwordChanged = false;
 					}
 				} else {
@@ -194,8 +194,8 @@ public class MucOptions {
 						this.error = ERROR_NICK_IN_USE;
 					}
 				} else if (error.hasChild("not-authorized")) {
-					if (conversation.getBookmark() != null &&
-							conversation.getBookmark().isProvidePassword()) {
+					if (conversation.getBookmark() != null
+							&& conversation.getBookmark().isProvidePassword()) {
 						this.passwordChanged = true;
 					}
 					this.error = ERROR_PASSWORD_REQUIRED;
@@ -323,17 +323,17 @@ public class MucOptions {
 	}
 
 	public String getPassword() {
-		if (conversation.getBookmark() != null &&
-				conversation.getBookmark().getPassword() != null) {
+		if (conversation.getBookmark() != null
+				&& conversation.getBookmark().getPassword() != null) {
 			return conversation.getBookmark().getPassword();
 		} else {
 			return this.password;
 		}
 	}
-	
+
 	public void setPassword(String password) {
-		if (conversation.getBookmark() != null &&
-				conversation.getBookmark().isProvidePassword()) {
+		if (conversation.getBookmark() != null
+				&& conversation.getBookmark().isProvidePassword()) {
 			conversation.getBookmark().setPassword(password);
 		} else {
 			this.password = password;
diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java
index ed846fe17..bd136a334 100644
--- a/src/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/eu/siacs/conversations/parser/MessageParser.java
@@ -75,9 +75,8 @@ public class MessageParser extends AbstractParser implements
 		}
 		if (!conversation.hasValidOtrSession()) {
 			if (properlyAddressed) {
-				conversation.startOtrSession(
-						mXmppConnectionService,
-						presence, false);
+				conversation.startOtrSession(mXmppConnectionService, presence,
+						false);
 			} else {
 				return null;
 			}
@@ -87,8 +86,7 @@ public class MessageParser extends AbstractParser implements
 			if (!foreignPresence.equals(presence)) {
 				conversation.endOtrIfNeeded();
 				if (properlyAddressed) {
-					conversation.startOtrSession(
-							mXmppConnectionService,
+					conversation.startOtrSession(mXmppConnectionService,
 							presence, false);
 				} else {
 					return null;
@@ -289,7 +287,8 @@ public class MessageParser extends AbstractParser implements
 				if (!conversation.getMucOptions().online()) {
 					if (x.hasChild("password")) {
 						Element password = x.findChild("password");
-						conversation.getMucOptions().setPassword(password.getContent());
+						conversation.getMucOptions().setPassword(
+								password.getContent());
 					}
 					mXmppConnectionService.joinMuc(conversation);
 					mXmppConnectionService.updateConversationUi();
@@ -453,7 +452,8 @@ public class MessageParser extends AbstractParser implements
 		Conversation conversation = message.getConversation();
 		conversation.getMessages().add(message);
 		if (packet.getType() != MessagePacket.TYPE_ERROR) {
-			if (message.getEncryption() == Message.ENCRYPTION_NONE || mXmppConnectionService.saveEncryptedMessages()) {
+			if (message.getEncryption() == Message.ENCRYPTION_NONE
+					|| mXmppConnectionService.saveEncryptedMessages()) {
 				mXmppConnectionService.databaseBackend.createMessage(message);
 			}
 		}
diff --git a/src/eu/siacs/conversations/parser/PresenceParser.java b/src/eu/siacs/conversations/parser/PresenceParser.java
index 18c23060d..05ffa67e9 100644
--- a/src/eu/siacs/conversations/parser/PresenceParser.java
+++ b/src/eu/siacs/conversations/parser/PresenceParser.java
@@ -107,7 +107,8 @@ public class PresenceParser extends AbstractParser implements
 					contact.setOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST);
 				}
 			}
-			Element nick = packet.findChild("nick", "http://jabber.org/protocol/nick");
+			Element nick = packet.findChild("nick",
+					"http://jabber.org/protocol/nick");
 			if (nick != null) {
 				contact.setPresenceName(nick.getContent());
 			}
diff --git a/src/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/eu/siacs/conversations/persistance/DatabaseBackend.java
index 2a403fab3..cda2f356d 100644
--- a/src/eu/siacs/conversations/persistance/DatabaseBackend.java
+++ b/src/eu/siacs/conversations/persistance/DatabaseBackend.java
@@ -163,7 +163,8 @@ public class DatabaseBackend extends SQLiteOpenHelper {
 					+ "=?", selectionArgs, null, null, Message.TIME_SENT
 					+ " DESC", String.valueOf(limit));
 		} else {
-			String[] selectionArgs = { conversation.getUuid(), Long.toString(timestamp) };
+			String[] selectionArgs = { conversation.getUuid(),
+					Long.toString(timestamp) };
 			cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION
 					+ "=? and " + Message.TIME_SENT + "<?", selectionArgs,
 					null, null, Message.TIME_SENT + " DESC",
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java
index f2e937604..247f602b4 100644
--- a/src/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/eu/siacs/conversations/services/XmppConnectionService.java
@@ -585,7 +585,8 @@ public class XmppConnectionService extends Service {
 
 		}
 		if (saveInDb) {
-			if (message.getEncryption() == Message.ENCRYPTION_NONE || saveEncryptedMessages()) {
+			if (message.getEncryption() == Message.ENCRYPTION_NONE
+					|| saveEncryptedMessages()) {
 				databaseBackend.createMessage(message);
 			}
 		}
@@ -1546,7 +1547,7 @@ public class XmppConnectionService extends Service {
 		return PreferenceManager
 				.getDefaultSharedPreferences(getApplicationContext());
 	}
-	
+
 	public boolean forceEncryption() {
 		return getPreferences().getBoolean("force_encryption", false);
 	}
@@ -1554,7 +1555,7 @@ public class XmppConnectionService extends Service {
 	public boolean confirmMessages() {
 		return getPreferences().getBoolean("confirm_messages", true);
 	}
-	
+
 	public boolean saveEncryptedMessages() {
 		return !getPreferences().getBoolean("dont_save_encrypted", false);
 	}
diff --git a/src/eu/siacs/conversations/ui/ChooseContactActivity.java b/src/eu/siacs/conversations/ui/ChooseContactActivity.java
index 449fc5467..277d21d6a 100644
--- a/src/eu/siacs/conversations/ui/ChooseContactActivity.java
+++ b/src/eu/siacs/conversations/ui/ChooseContactActivity.java
@@ -82,8 +82,7 @@ public class ChooseContactActivity extends XmppActivity {
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.activity_choose_contact);
 		mListView = (ListView) findViewById(R.id.choose_contact_list);
-		mContactsAdapter = new ListItemAdapter(getApplicationContext(),
-				contacts);
+		mContactsAdapter = new ListItemAdapter(this, contacts);
 		mListView.setAdapter(mContactsAdapter);
 		mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 
@@ -98,7 +97,7 @@ public class ChooseContactActivity extends XmppActivity {
 				ListItem mListItem = contacts.get(position);
 				data.putExtra("contact", mListItem.getJid());
 				String account = request.getStringExtra("account");
-				if (account==null && mListItem instanceof Contact) {
+				if (account == null && mListItem instanceof Contact) {
 					account = ((Contact) mListItem).getAccount().getJid();
 				}
 				data.putExtra("account", account);
diff --git a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
index 17ea5f98b..8de2ce804 100644
--- a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
+++ b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java
@@ -325,16 +325,18 @@ public class ContactDetailsActivity extends XmppActivity {
 		for (Iterator<String> iterator = contact.getOtrFingerprints()
 				.iterator(); iterator.hasNext();) {
 			final String otrFingerprint = iterator.next();
-			View view = (View) inflater.inflate(R.layout.contact_key, keys,false);
+			View view = (View) inflater.inflate(R.layout.contact_key, keys,
+					false);
 			TextView key = (TextView) view.findViewById(R.id.key);
 			TextView keyType = (TextView) view.findViewById(R.id.key_type);
-			ImageButton remove = (ImageButton) view.findViewById(R.id.button_remove);
+			ImageButton remove = (ImageButton) view
+					.findViewById(R.id.button_remove);
 			remove.setVisibility(View.VISIBLE);
 			keyType.setText("OTR Fingerprint");
 			key.setText(otrFingerprint);
 			keys.addView(view);
 			remove.setOnClickListener(new OnClickListener() {
-				
+
 				@Override
 				public void onClick(View v) {
 					confirmToDeleteFingerprint(otrFingerprint);
@@ -342,7 +344,8 @@ public class ContactDetailsActivity extends XmppActivity {
 			});
 		}
 		if (contact.getPgpKeyId() != 0) {
-			View view = (View) inflater.inflate(R.layout.contact_key, keys,false);
+			View view = (View) inflater.inflate(R.layout.contact_key, keys,
+					false);
 			TextView key = (TextView) view.findViewById(R.id.key);
 			TextView keyType = (TextView) view.findViewById(R.id.key_type);
 			keyType.setText("PGP Key ID");
@@ -370,23 +373,25 @@ public class ContactDetailsActivity extends XmppActivity {
 			keys.addView(view);
 		}
 	}
-	
+
 	protected void confirmToDeleteFingerprint(final String fingerprint) {
 		AlertDialog.Builder builder = new AlertDialog.Builder(this);
 		builder.setTitle(R.string.delete_fingerprint);
 		builder.setMessage(R.string.sure_delete_fingerprint);
 		builder.setNegativeButton(R.string.cancel, null);
-		builder.setPositiveButton(R.string.delete,new android.content.DialogInterface.OnClickListener() {
+		builder.setPositiveButton(R.string.delete,
+				new android.content.DialogInterface.OnClickListener() {
 
-			@Override
-			public void onClick(DialogInterface dialog, int which) {
-				if (contact.deleteOtrFingerprint(fingerprint)) {
-					populateView();
-					xmppConnectionService.syncRosterToDisk(contact.getAccount());
-				}
-			}
-			
-		});
+					@Override
+					public void onClick(DialogInterface dialog, int which) {
+						if (contact.deleteOtrFingerprint(fingerprint)) {
+							populateView();
+							xmppConnectionService.syncRosterToDisk(contact
+									.getAccount());
+						}
+					}
+
+				});
 		builder.create().show();
 	}
 
diff --git a/src/eu/siacs/conversations/ui/ConversationActivity.java b/src/eu/siacs/conversations/ui/ConversationActivity.java
index df0112aee..5eedda1c7 100644
--- a/src/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/eu/siacs/conversations/ui/ConversationActivity.java
@@ -324,7 +324,8 @@ public class ConversationActivity extends XmppActivity {
 			} else {
 				showInstallPgpDialog();
 			}
-		} else if (getSelectedConversation().getNextEncryption(forceEncryption()) == Message.ENCRYPTION_NONE) {
+		} else if (getSelectedConversation().getNextEncryption(
+				forceEncryption()) == Message.ENCRYPTION_NONE) {
 			selectPresenceToAttachFile(attachmentChoice);
 		} else {
 			selectPresenceToAttachFile(attachmentChoice);
@@ -440,7 +441,8 @@ public class ConversationActivity extends XmppActivity {
 				popup.inflate(R.menu.encryption_choices);
 				MenuItem otr = popup.getMenu().findItem(
 						R.id.encryption_choice_otr);
-				MenuItem none = popup.getMenu().findItem(R.id.encryption_choice_none);
+				MenuItem none = popup.getMenu().findItem(
+						R.id.encryption_choice_none);
 				if (conversation.getMode() == Conversation.MODE_MULTI) {
 					otr.setEnabled(false);
 				} else {
diff --git a/src/eu/siacs/conversations/ui/SettingsActivity.java b/src/eu/siacs/conversations/ui/SettingsActivity.java
index c522e058a..6b2807199 100644
--- a/src/eu/siacs/conversations/ui/SettingsActivity.java
+++ b/src/eu/siacs/conversations/ui/SettingsActivity.java
@@ -2,6 +2,7 @@ package eu.siacs.conversations.ui;
 
 import java.util.Locale;
 
+import eu.siacs.conversations.R;
 import eu.siacs.conversations.entities.Account;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
diff --git a/src/eu/siacs/conversations/ui/StartConversationActivity.java b/src/eu/siacs/conversations/ui/StartConversationActivity.java
index 6adada761..6287070c4 100644
--- a/src/eu/siacs/conversations/ui/StartConversationActivity.java
+++ b/src/eu/siacs/conversations/ui/StartConversationActivity.java
@@ -191,8 +191,7 @@ public class StartConversationActivity extends XmppActivity {
 			}
 		});
 
-		mConferenceAdapter = new ListItemAdapter(getApplicationContext(),
-				conferences);
+		mConferenceAdapter = new ListItemAdapter(this, conferences);
 		mConferenceListFragment.setListAdapter(mConferenceAdapter);
 		mConferenceListFragment.setContextMenu(R.menu.conference_context);
 		mConferenceListFragment
@@ -205,8 +204,7 @@ public class StartConversationActivity extends XmppActivity {
 					}
 				});
 
-		mContactsAdapter = new ListItemAdapter(getApplicationContext(),
-				contacts);
+		mContactsAdapter = new ListItemAdapter(this, contacts);
 		mContactsListFragment.setListAdapter(mContactsAdapter);
 		mContactsListFragment.setContextMenu(R.menu.contact_context);
 		mContactsListFragment
diff --git a/src/eu/siacs/conversations/ui/XmppActivity.java b/src/eu/siacs/conversations/ui/XmppActivity.java
index b7cce11da..f13c112a9 100644
--- a/src/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/eu/siacs/conversations/ui/XmppActivity.java
@@ -21,6 +21,7 @@ import android.app.AlertDialog.Builder;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.SharedPreferences;
 import android.content.DialogInterface.OnClickListener;
 import android.content.IntentSender.SendIntentException;
 import android.content.res.Resources;
@@ -33,6 +34,7 @@ import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.preference.PreferenceManager;
 import android.text.InputType;
 import android.util.DisplayMetrics;
 import android.util.Log;
@@ -183,6 +185,14 @@ public abstract class XmppActivity extends Activity {
 		mSecondaryTextColor = getResources().getColor(R.color.secondarytext);
 		mWarningTextColor = getResources().getColor(R.color.warningtext);
 		mPrimaryColor = getResources().getColor(R.color.primary);
+		if (getPreferences().getBoolean("use_larger_font", false)) {
+			setTheme(R.style.ConversationsTheme_LargerText);
+		}
+	}
+
+	protected SharedPreferences getPreferences() {
+		return PreferenceManager
+				.getDefaultSharedPreferences(getApplicationContext());
 	}
 
 	public void switchToConversation(Conversation conversation) {
@@ -309,26 +319,28 @@ public abstract class XmppActivity extends Activity {
 					@Override
 					public void onClick(DialogInterface dialog, int which) {
 						if (xmppConnectionServiceBound) {
-							xmppConnectionService.sendPresencePacket(contact.getAccount(),
-									xmppConnectionService.getPresenceGenerator()
-											.requestPresenceUpdatesFrom(contact));
+							xmppConnectionService.sendPresencePacket(contact
+									.getAccount(), xmppConnectionService
+									.getPresenceGenerator()
+									.requestPresenceUpdatesFrom(contact));
 						}
 					}
 				});
 		builder.create().show();
 	}
-	
-	private void warnMutalPresenceSubscription(final Conversation conversation,final OnPresenceSelected listener) {
+
+	private void warnMutalPresenceSubscription(final Conversation conversation,
+			final OnPresenceSelected listener) {
 		AlertDialog.Builder builder = new AlertDialog.Builder(this);
 		builder.setTitle(conversation.getContact().getJid());
 		builder.setMessage(R.string.without_mutual_presence_updates);
 		builder.setNegativeButton(R.string.cancel, null);
 		builder.setPositiveButton(R.string.ignore, new OnClickListener() {
-			
+
 			@Override
 			public void onClick(DialogInterface dialog, int which) {
 				conversation.setNextPresence(null);
-				if (listener!=null) {
+				if (listener != null) {
 					listener.onPresenceSelected();
 				}
 			}
@@ -388,8 +400,9 @@ public abstract class XmppActivity extends Activity {
 						&& !contact.getOption(Contact.Options.ASKING)
 						&& contact.getAccount().getStatus() == Account.STATUS_ONLINE) {
 					showAskForPresenceDialog(contact);
-				} else if (!contact.getOption(Contact.Options.TO) || !contact.getOption(Contact.Options.FROM)) {
-					warnMutalPresenceSubscription(conversation,listener);
+				} else if (!contact.getOption(Contact.Options.TO)
+						|| !contact.getOption(Contact.Options.FROM)) {
+					warnMutalPresenceSubscription(conversation, listener);
 				} else {
 					conversation.setNextPresence(null);
 					listener.onPresenceSelected();
diff --git a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index 1abd208d7..967042d80 100644
--- a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -462,7 +462,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
 
 							@Override
 							public void onClick(View v) {
-								Downloadable downloadable = item.getDownloadable();
+								Downloadable downloadable = item
+										.getDownloadable();
 								if (downloadable != null) {
 									downloadable.start();
 								}
diff --git a/src/eu/siacs/conversations/utils/UIHelper.java b/src/eu/siacs/conversations/utils/UIHelper.java
index 896bdb7d6..54c370ef4 100644
--- a/src/eu/siacs/conversations/utils/UIHelper.java
+++ b/src/eu/siacs/conversations/utils/UIHelper.java
@@ -215,8 +215,8 @@ public class UIHelper {
 		List<User> members = conversation.getMucOptions().getUsers();
 		if (members.size() == 0) {
 			return getUnknownContactPicture(
-					new String[] { conversation.getName() }, size,
-					bgColor, fgColor);
+					new String[] { conversation.getName() }, size, bgColor,
+					fgColor);
 		}
 		ArrayList<String> names = new ArrayList<String>();
 		names.add(conversation.getMucOptions().getActualNick());
@@ -548,35 +548,37 @@ public class UIHelper {
 	private final static class EmoticonPattern {
 		Pattern pattern;
 		String replacement;
+
 		EmoticonPattern(String ascii, int unicode) {
-			this.pattern = Pattern.compile("(?<=(^|\\s))" + ascii + "(?=(\\s|$))");
-			this.replacement = new String(new int[]{unicode, }, 0, 1);
+			this.pattern = Pattern.compile("(?<=(^|\\s))" + ascii
+					+ "(?=(\\s|$))");
+			this.replacement = new String(new int[] { unicode, }, 0, 1);
 		}
+
 		String replaceAll(String body) {
 			return pattern.matcher(body).replaceAll(replacement);
 		}
 	}
 
 	private static final EmoticonPattern[] patterns = new EmoticonPattern[] {
-		new EmoticonPattern(":-?D", 0x1f600),
-		new EmoticonPattern("\\^\\^", 0x1f601),
-		new EmoticonPattern(":'D", 0x1f602),
-		new EmoticonPattern("\\]-?D", 0x1f608),
-		new EmoticonPattern(";-?\\)", 0x1f609),
-		new EmoticonPattern(":-?\\)", 0x1f60a),
-		new EmoticonPattern("[B8]-?\\)", 0x1f60e),
-		new EmoticonPattern(":-?\\|", 0x1f610),
-		new EmoticonPattern(":-?[/\\\\]", 0x1f615),
-		new EmoticonPattern(":-?\\*", 0x1f617),
-		new EmoticonPattern(":-?[Ppb]", 0x1f61b),
-		new EmoticonPattern(":-?\\(", 0x1f61e),
-		new EmoticonPattern(":-?[0Oo]", 0x1f62e),
-		new EmoticonPattern("\\\\o/", 0x1F631),
-	};
+			new EmoticonPattern(":-?D", 0x1f600),
+			new EmoticonPattern("\\^\\^", 0x1f601),
+			new EmoticonPattern(":'D", 0x1f602),
+			new EmoticonPattern("\\]-?D", 0x1f608),
+			new EmoticonPattern(";-?\\)", 0x1f609),
+			new EmoticonPattern(":-?\\)", 0x1f60a),
+			new EmoticonPattern("[B8]-?\\)", 0x1f60e),
+			new EmoticonPattern(":-?\\|", 0x1f610),
+			new EmoticonPattern(":-?[/\\\\]", 0x1f615),
+			new EmoticonPattern(":-?\\*", 0x1f617),
+			new EmoticonPattern(":-?[Ppb]", 0x1f61b),
+			new EmoticonPattern(":-?\\(", 0x1f61e),
+			new EmoticonPattern(":-?[0Oo]", 0x1f62e),
+			new EmoticonPattern("\\\\o/", 0x1F631), };
 
 	public static String transformAsciiEmoticons(String body) {
 		if (body != null) {
-			for (EmoticonPattern p: patterns) {
+			for (EmoticonPattern p : patterns) {
 				body = p.replaceAll(body);
 			}
 			body = body.trim();
diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java
index 369209291..e7b25e264 100644
--- a/src/eu/siacs/conversations/xmpp/XmppConnection.java
+++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -763,12 +763,15 @@ public class XmppConnection implements Runnable {
 		});
 	}
 
-	private void processStreamError(Tag currentTag) throws XmlPullParserException, IOException {
+	private void processStreamError(Tag currentTag)
+			throws XmlPullParserException, IOException {
 		Element streamError = tagReader.readElement(currentTag);
-		if (streamError!=null && streamError.hasChild("conflict")) {
+		if (streamError != null && streamError.hasChild("conflict")) {
 			String resource = account.getResource().split("\\.")[0];
-			account.setResource(resource+"."+nextRandomId());
-			Log.d(Config.LOGTAG,account.getJid()+": switching resource due to conflict ("+account.getResource()+")");
+			account.setResource(resource + "." + nextRandomId());
+			Log.d(Config.LOGTAG,
+					account.getJid() + ": switching resource due to conflict ("
+							+ account.getResource() + ")");
 		}
 	}
 
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
index e26fcad9e..f42482e83 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
@@ -96,8 +96,8 @@ public class JingleConnection implements Downloadable {
 				BitmapFactory.decodeFile(file.getAbsolutePath(), options);
 				int imageHeight = options.outHeight;
 				int imageWidth = options.outWidth;
-				message.setBody(Long.toString(file.getSize()) + ',' + imageWidth + ','
-						+ imageHeight);
+				message.setBody(Long.toString(file.getSize()) + ','
+						+ imageWidth + ',' + imageHeight);
 				mXmppConnectionService.databaseBackend.createMessage(message);
 				mXmppConnectionService.markMessage(message,
 						Message.STATUS_RECEIVED);
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java b/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
index cd87552ba..c5498075f 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
@@ -135,7 +135,8 @@ public class JingleInbandTransport extends JingleTransport {
 				Element data = iq.addChild("data",
 						"http://jabber.org/protocol/ibb");
 				data.setAttribute("seq", Integer.toString(this.seq));
-				data.setAttribute("block-size", Integer.toString(this.blockSize));
+				data.setAttribute("block-size",
+						Integer.toString(this.blockSize));
 				data.setAttribute("sid", this.sessionId);
 				data.setContent(base64);
 				this.account.getXmppConnection().sendIqPacket(iq,
diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
index 1a8ab9dd6..63f5a5078 100644
--- a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
+++ b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
@@ -58,9 +58,9 @@ public class JingleSocks5Transport extends JingleTransport {
 					byte[] reply = new byte[2];
 					outputStream.write(login);
 					inputStream.read(reply);
-					final String connect = Character.toString('\u0005') + '\u0001' + '\u0000'
-							+ '\u0003' + '\u0028' + destination + '\u0000'
-							+ '\u0000';
+					final String connect = Character.toString('\u0005')
+							+ '\u0001' + '\u0000' + '\u0003' + '\u0028'
+							+ destination + '\u0000' + '\u0000';
 					if (Arrays.equals(reply, expectedReply)) {
 						outputStream.write(connect.getBytes());
 						byte[] result = new byte[2];