diff --git a/core/css/mobile.css b/core/css/mobile.css
index a4cca6f37f656061305289b749fa95347f766ca8..65c756aa91a748aca83815721a48e915e053f277 100644
--- a/core/css/mobile.css
+++ b/core/css/mobile.css
@@ -17,4 +17,10 @@
 	transition: width 100ms;
 }
 
+/* do not show display name on mobile when profile picture is present */
+#header .avatardiv.avatardiv-shown + #expandDisplayName {
+	display: none;
+}
+
+
 }
diff --git a/core/js/avatar.js b/core/js/avatar.js
index c54c40687689259fb0ee4e04d4e48094ebac2856..67d6b9b7b954469158c11b6b7f83fe99a994ea86 100644
--- a/core/js/avatar.js
+++ b/core/js/avatar.js
@@ -1,6 +1,13 @@
 $(document).ready(function(){
 	if (OC.currentUser) {
-		$('#header .avatardiv').avatar(OC.currentUser, 32, undefined, true);
+		var callback = function() {
+			// do not show display name on mobile when profile picture is present
+			if($('#header .avatardiv').children().length > 0) {
+				$('#header .avatardiv').addClass('avatardiv-shown');
+			}
+		};
+
+		$('#header .avatardiv').avatar(OC.currentUser, 32, undefined, true, callback);
 		// Personal settings
 		$('#avatar .avatardiv').avatar(OC.currentUser, 128);
 	}
diff --git a/core/js/jquery.avatar.js b/core/js/jquery.avatar.js
index 6012eccfad6ddcc65bdc85bcea871cfcc8c29fac..02a40c088b4f46866f0a448cdecb2b2aac69bb6e 100644
--- a/core/js/jquery.avatar.js
+++ b/core/js/jquery.avatar.js
@@ -39,10 +39,15 @@
  * This will behave like the first example, but it will hide the avatardiv, if
  * it will display the default placeholder. undefined is the ie8fix from
  * example 4 and can be either true, or false/undefined, to be ignored.
+ *
+ * 6. $('.avatardiv').avatar('jdoe', 128, undefined, true, callback);
+ * This will behave like the above example, but it will call the function
+ * defined in callback after the avatar is placed into the DOM.
+ *
  */
 
 (function ($) {
-	$.fn.avatar = function(user, size, ie8fix, hidedefault) {
+	$.fn.avatar = function(user, size, ie8fix, hidedefault, callback) {
 		if (typeof(size) === 'undefined') {
 			if (this.height() > 0) {
 				size = this.height();
@@ -91,6 +96,9 @@
 						$div.html('<img src="'+url+'">');
 					}
 				}
+				if(typeof callback === 'function') {
+					callback();
+				}
 			});
 		});
 	};
diff --git a/settings/js/personal.js b/settings/js/personal.js
index ef261b50bbca1336f00d87da6839b6cb73465987..5944272067bab5a1575325ea9cbabffa9d994032 100644
--- a/settings/js/personal.js
+++ b/settings/js/personal.js
@@ -52,9 +52,11 @@ function updateAvatar (hidedefault) {
 
 	if(hidedefault) {
 		$headerdiv.hide();
+		$('#header .avatardiv').removeClass('avatardiv-shown');
 	} else {
 		$headerdiv.css({'background-color': ''});
 		$headerdiv.avatar(OC.currentUser, 32, true);
+		$('#header .avatardiv').addClass('avatardiv-shown');
 	}
 	$displaydiv.css({'background-color': ''});
 	$displaydiv.avatar(OC.currentUser, 128, true);