diff --git a/core/avatar/controller.php b/core/avatar/controller.php
index 85ac251d094dedca40d8ea5fe707f949222165a3..8f1d6a570693db06c8289a0289ec422932c17b7c 100644
--- a/core/avatar/controller.php
+++ b/core/avatar/controller.php
@@ -41,25 +41,25 @@ class OC_Core_Avatar_Controller {
 		if (isset($_POST['path'])) {
 			$path = stripslashes($_POST['path']);
 			$view = new \OC\Files\View('/'.$user.'/files');
-			$avatar = $view->file_get_contents($path);
+			$newAvatar = $view->file_get_contents($path);
 		}
 
 		if (!empty($_FILES)) {
 			$files = $_FILES['files'];
 			if ($files['error'][0] === 0) {
-				$avatar = file_get_contents($files['tmp_name'][0]);
+				$newAvatar = file_get_contents($files['tmp_name'][0]);
 				unlink($files['tmp_name'][0]);
 			}
 		}
 
 		try {
-			$ava = new \OC_Avatar();
-			$ava->set($user, $avatar);
+			$avatar = new \OC_Avatar();
+			$avatar->set($user, $newAvatar);
 			\OC_JSON::success();
 		} catch (\OC\NotSquareException $e) {
-			$image = new \OC_Image($avatar);
+			$image = new \OC_Image($newAvatar);
 
-			\OC_Cache::set('tmpavatar', $image->data());
+			\OC_Cache::set('tmpavatar', $image->data(), 7200);
 			\OC_JSON::error(array("data" => array("message" => "notsquare") ));
 		} catch (\Exception $e) {
 			\OC_JSON::error(array("data" => array("message" => $e->getMessage()) ));
diff --git a/core/js/avatar.js b/core/js/avatar.js
index 15c268af663061dd3230bffd868fd625cf4bdeab..a731519244a642011e4c73424002c843b894c6e8 100644
--- a/core/js/avatar.js
+++ b/core/js/avatar.js
@@ -3,7 +3,7 @@ $(document).ready(function(){
 	// Personal settings
 	$('#avatar .avatardiv').avatar(OC.currentUser, 128);
 	// User settings
-	$.each($('td.avatar .avatardiv'), function(i, data) {
-		$(data).avatar($(data).parent().parent().data('uid'), 32);
+	$.each($('td.avatar .avatardiv'), function(i, element) {
+		$(element).avatar($(element).parent().parent().data('uid'), 32);
 	});
 });
diff --git a/core/js/jquery.avatar.js b/core/js/jquery.avatar.js
index 055ca45720570415f09a87ea0638ccb2d5c22594..dc73d8f0d91b3099d32f927704267b7e3adac8dd 100644
--- a/core/js/jquery.avatar.js
+++ b/core/js/jquery.avatar.js
@@ -61,13 +61,15 @@
 
 		var $div = this;
 
-		var url = OC.router_base_url+'/avatar/'+user+'/'+size // FIXME routes aren't loaded yet, so OC.Router.generate() doesn't work
-		$.get(url, function(result) {
-			if (typeof(result) === 'object') {
-				$div.placeholder(result.user);
-			} else {
-				$div.html('<img src="'+url+'">');
-			}
+		OC.Router.registerLoadedCallback(function() {
+			var url = OC.Router.generate('core_avatar_get', {user: user, size: size});
+			$.get(url, function(result) {
+				if (typeof(result) === 'object') {
+					$div.placeholder(result.user);
+				} else {
+					$div.html('<img src="'+url+'">');
+				}
+			});
 		});
 	};
 }(jQuery));