diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js
index 74afbc9fe0229b12623d102020fe99d445ffee52..29dce21486cda034669765d42c8b2d2c536aa8bf 100644
--- a/core/js/sharedialoglinkshareview.js
+++ b/core/js/sharedialoglinkshareview.js
@@ -13,6 +13,9 @@
 		OC.Share = {};
 	}
 
+	var PASSWORD_PLACEHOLDER = '**********';
+	var PASSWORD_PLACEHOLDER_MESSAGE = t('core', 'Choose a password for the public link');
+
 	var TEMPLATE =
 			'{{#if shareAllowed}}' +
 			'<span class="icon-loading-small hidden"></span>' +
@@ -133,11 +136,6 @@
 					this.model.saveLinkShare();
 				} else {
 					this.$el.find('.linkPass').slideToggle(OC.menuSpeed);
-					// TODO drop with IE8 drop
-					if($('html').hasClass('ie8')) {
-						this.$el.find('.linkPassText').attr('placeholder', null);
-						this.$el.find('.linkPassText').val('');
-					}
 					this.$el.find('.linkPassText').focus();
 				}
 			} else {
@@ -182,7 +180,8 @@
 			var $input = this.$el.find('.linkPassText');
 			$input.removeClass('error');
 			var password = $input.val();
-			if(password === '') {
+			// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill
+			if(password === '' || password === PASSWORD_PLACEHOLDER || password === PASSWORD_PLACEHOLDER_MESSAGE) {
 				return;
 			}
 
@@ -276,7 +275,7 @@
 				urlLabel: t('core', 'Link'),
 				enablePasswordLabel: t('core', 'Password protect'),
 				passwordLabel: t('core', 'Password'),
-				passwordPlaceholder: isPasswordSet ? '**********' : t('core', 'Choose a password for the public link'),
+				passwordPlaceholder: isPasswordSet ? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,
 				isPasswordSet: isPasswordSet,
 				showPasswordCheckBox: showPasswordCheckBox,
 				publicUpload: publicUpload && isLinkShare,
@@ -314,6 +313,12 @@
 				};
 			}
 
+			// TODO drop with IE8 drop
+			if($('html').hasClass('ie8')) {
+				this.$el.find('#linkPassText').removeAttr('placeholder');
+				this.$el.find('#linkPassText').val('');
+			}
+
 			this.delegateEvents();
 
 			return this;