diff --git a/bower.json b/bower.json
index 8eda02ef6503f7b92a53d1bdde97265ce2a4037d..c6c8e9b5f0fa9b5b8fc731c239c668c9b933de3f 100644
--- a/bower.json
+++ b/bower.json
@@ -23,7 +23,7 @@
     "select2": "~3.4.8",
     "zxcvbn": "*",
     "snapjs": "~2.0.0-rc1",
-    "strengthify": "*",
+    "strengthify": "0.4.1",
     "underscore": "~1.6.0"
   }
 }
diff --git a/core/vendor/strengthify/.bower.json b/core/vendor/strengthify/.bower.json
index abba0d7e00e606b23fad6db72470f0ba0b0849d2..b86b43f17b74c48a6fd22537705b8175f25e6fbb 100644
--- a/core/vendor/strengthify/.bower.json
+++ b/core/vendor/strengthify/.bower.json
@@ -1,5 +1,6 @@
 {
   "name": "strengthify",
+  "version": "0.4.1",
   "homepage": "https://github.com/MorrisJobke/strengthify",
   "authors": [
     "Morris Jobke <hey@morrisjobke.de>"
@@ -7,13 +8,13 @@
   "description": "Combine jQuery and zxcvbn to create a password strength meter.",
   "main": "jquery.strengthify.js",
   "license": "MIT",
-  "_release": "f1dd3eaf28",
+  "_release": "0.4.1",
   "_resolution": {
-    "type": "branch",
-    "branch": "master",
-    "commit": "f1dd3eaf289be559885325a6585f6dd6ae2fa8c3"
+    "type": "version",
+    "tag": "0.4.1",
+    "commit": "fe9d1c80156d3fcdd16434ebc789007d045c1d1f"
   },
   "_source": "git://github.com/MorrisJobke/strengthify.git",
-  "_target": "*",
+  "_target": "0.4.1",
   "_originalSource": "strengthify"
 }
\ No newline at end of file
diff --git a/core/vendor/strengthify/jquery.strengthify.js b/core/vendor/strengthify/jquery.strengthify.js
index 8b62f6b2fe9740f48620093f64d86d48f5feec39..21f5fa82956c535426999e45938b1f6b51da0379 100644
--- a/core/vendor/strengthify/jquery.strengthify.js
+++ b/core/vendor/strengthify/jquery.strengthify.js
@@ -2,7 +2,7 @@
  * Strengthify - show the weakness of a password (uses zxcvbn for this)
  * https://github.com/kabum/strengthify
  *
- * Version: 0.3
+ * Version: 0.4.1
  * Author: Morris Jobke (github.com/kabum)
  *
  * License:
@@ -29,22 +29,21 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+/* global jQuery */
 (function ($) {
-	$.fn.strengthify = function(options) {
-		var me = this
-
-		var defaults = {
-			zxcvbn: 'zxcvbn/zxcvbn.js',
-			titles: [
-				'Weakest',
-				'Weak',
-				'So-so',
-				'Good',
-				'Perfect'
-			]
-		}
-
-		var options = $.extend(defaults, options)
+	$.fn.strengthify = function(paramOptions) {
+		var me = this,
+			defaults = {
+				zxcvbn: 'zxcvbn/zxcvbn.js',
+				titles: [
+					'Weakest',
+					'Weak',
+					'So-so',
+					'Good',
+					'Perfect'
+				]
+			},
+			options = $.extend(defaults, paramOptions);
 
 		// add elements
 		$('.strengthify-wrapper')
@@ -52,9 +51,7 @@
 			.append('<div class="strengthify-container" />')
 			.append('<div class="strengthify-separator" style="left: 25%" />')
 			.append('<div class="strengthify-separator" style="left: 50%" />')
-			.append('<div class="strengthify-separator" style="left: 75%" />')
-
-		var oldDisplayState = $('.strengthify-wrapper').css('display')
+			.append('<div class="strengthify-separator" style="left: 75%" />');
 
 		$.ajax({
 			cache: true,
@@ -62,22 +59,24 @@
 			url: options.zxcvbn
 		}).done(function() {
 			me.bind('keyup input', function() {
-				var password = $(this).val()
+				var password = $(this).val(),
+					// hide strengthigy if no input is provided
+					opacity = (password === '') ? 0 : 1,
+					// calculate result
+					result = zxcvbn(password),
+					css = '',
+					// cache jQuery selections
+					$container = $('.strengthify-container'),
+					$wrapper = $('.strengthify-wrapper');
 
-				// hide strengthigy if no input is provided
-				var opacity = (password === '') ? 0 : 1
-				$('.strengthify-wrapper').children().css(
+				$wrapper.children().css(
 					'opacity',
 					opacity
 				).css(
 					'-ms-filter',
 					'"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')"'
-				)
+				);
 
-				// calculate result
-				var result = zxcvbn(password)
-
-				var css = ''
 				// style strengthify bar
 				// possible scores: 0-4
 				switch(result.score) {
@@ -94,16 +93,18 @@
 						break;
 				}
 
-				$('.strengthify-container').attr('class', css + ' strengthify-container')
-				// possible scores: 0-4
-				$('.strengthify-container').css(
-					'width',
-					// if score is '0' it will be changed to '1' to
-					// not hide strengthify if the password is extremely weak
-					((result.score == 0 ? 1 : result.score) * 25) + '%'
-				)
+				$container
+					.attr('class', css + ' strengthify-container')
+					// possible scores: 0-4
+					.css(
+						'width',
+						// if score is '0' it will be changed to '1' to
+						// not hide strengthify if the password is extremely weak
+						((result.score === 0 ? 1 : result.score) * 25) + '%'
+					);
+
 				// set a title for the wrapper
-				$('.strengthify-wrapper').attr(
+				$wrapper.attr(
 					'title',
 					options.titles[result.score]
 				).tipsy({
@@ -111,23 +112,23 @@
 					opacity: opacity
 				}).tipsy(
 					'show'
-				)
+				);
 
 				if(opacity === 0) {
-					$('.strengthify-wrapper').tipsy(
+					$wrapper.tipsy(
 						'hide'
-					)
+					);
 				}
 
 				// reset state for empty string password
 				if(password === '') {
-					$('.strengthify-container').css('width', 0)
+					$container.css('width', 0);
 				}
 
-			})
-		})
+			});
+		});
 
-		return me
+		return me;
 	};
 
-}(jQuery))
\ No newline at end of file
+}(jQuery));