diff --git a/apps/contacts/css/contacts.css b/apps/contacts/css/contacts.css
index 94a0db4f77e5bdb825e9eade6bb7240028b6a369..9aa63f016c1b7caea92721f02aa09657c3a826c4 100644
--- a/apps/contacts/css/contacts.css
+++ b/apps/contacts/css/contacts.css
@@ -91,7 +91,7 @@ dl.addresscard .action { float: right; }
 
 #file_upload_form { width: 0; height: 0; }
 #file_upload_target, #import_upload_target, #crop_target { display:none; }
-#file_upload_start, #import_upload_start { opacity:0; filter:alpha(opacity=0); z-index:1001; /*position:absolute; left:0; top:0;*/ width:0; height:0;}
+#file_upload_start, #import_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1001; width:0; height:0;}
 #import_upload_start { width: 16px; height: 16px; margin: 0 0 0 0; }
 input[type="checkbox"] { width: 20px; height: 20px; vertical-align: bottom; }
 .big { font-weight:bold; font-size:1.2em; }
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index daa475d298b4a39d16abbaca09f11b38c21a3e3c..d403500d4d748448b192a94fd67d89e59c1f6d06 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -28,7 +28,7 @@
 
 .file_upload_start { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; z-index:1; position:absolute; left:0; top:0; width:100%; cursor:pointer;}
 .file_upload_filename.active { border-bottom-right-radius:0 }
-.file_upload_filename { position: relative; z-index:100; padding-left: 0.8em; padding-right: 0.8em; cursor:pointer; border-top-left-radius:0; border-bottom-left-radius:0; }
+.file_upload_filename { z-index:100; padding-left: 0.8em; padding-right: 0.8em; cursor:pointer; border-top-left-radius:0; border-bottom-left-radius:0; }
 .file_upload_filename img { position: absolute; top: 0.4em; left: 0.4em; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
 
 #upload { position:absolute; right:13.5em; top:0em; }
diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml
index aac72b57a8bb677042287bea6545213994a04870..de0daf146e34e3df852179b6f0d8197df7ddb82a 100644
--- a/apps/user_ldap/appinfo/info.xml
+++ b/apps/user_ldap/appinfo/info.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <info>
 	<id>user_ldap</id>
-	<name>LDAP user backend</name>
+	<name>LDAP user and group backend</name>
 	<description>Authenticate Users by LDAP</description>
 	<licence>AGPL</licence>
 	<author>Dominik Schmidt and Arthur Schiwon</author>
diff --git a/apps/user_ldap/appinfo/install.php b/apps/user_ldap/appinfo/install.php
new file mode 100644
index 0000000000000000000000000000000000000000..9efc3bb24d283971a108275fa367b63aae0ed18a
--- /dev/null
+++ b/apps/user_ldap/appinfo/install.php
@@ -0,0 +1,6 @@
+<?php
+
+$state = OCP\Config::getSystemValue('ldapIgnoreNamingRules', 'doSet');
+if($state == 'doSet'){
+	OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
+}
diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php
index 048d804217bcf52158658ffca6f99b59fec2a909..b3f7a397db960b6c43bb901e13608f387b8e5a6a 100644
--- a/apps/user_ldap/appinfo/update.php
+++ b/apps/user_ldap/appinfo/update.php
@@ -12,22 +12,25 @@ if(!is_null($pw)) {
 
 //detect if we can switch on naming guidelines. We won't do it on conflicts.
 //it's a bit spaghetti, but hey.
-$sqlCleanMap = 'DELETE FROM *PREFIX*ldap_user_mapping';
+$state = OCP\Config::getSystemValue('ldapIgnoreNamingRules', 'doCheck');
+if($state == 'doCheck'){
+	$sqlCleanMap = 'DELETE FROM *PREFIX*ldap_user_mapping';
 
-require_once(OC::$APPSROOT.'/apps/user_ldap/lib_ldap.php');
-require_once(OC::$APPSROOT.'/apps/user_ldap/user_ldap.php');
+	require_once(OC::$APPSROOT.'/apps/user_ldap/lib_ldap.php');
+	require_once(OC::$APPSROOT.'/apps/user_ldap/user_ldap.php');
 
-OCP\Config::setSystemValue('ldapIgnoreNamingRules', true);
-$LDAP_USER = new OC_USER_LDAP();
-$users_old = $LDAP_USER->getUsers();
-$query = OCP\DB::prepare($sqlCleanMap);
-$query->execute();
-OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
-OC_LDAP::init(true);
-$users_new = $LDAP_USER->getUsers();
-$query = OCP\DB::prepare($sqlCleanMap);
-$query->execute();
-if($users_old !== $users_new) {
-	//we don't need to check Groups, because they were not supported in 3'
 	OCP\Config::setSystemValue('ldapIgnoreNamingRules', true);
+	$LDAP_USER = new OC_USER_LDAP();
+	$users_old = $LDAP_USER->getUsers();
+	$query = OCP\DB::prepare($sqlCleanMap);
+	$query->execute();
+	OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
+	OC_LDAP::init(true);
+	$users_new = $LDAP_USER->getUsers();
+	$query = OCP\DB::prepare($sqlCleanMap);
+	$query->execute();
+	if($users_old !== $users_new) {
+		//we don't need to check Groups, because they were not supported in 3'
+		OCP\Config::setSystemValue('ldapIgnoreNamingRules', true);
+	}
 }
\ No newline at end of file
diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version
index 57898bb4c247895c74142c0237a6fa68c93ee470..2f4536184bcac31936bd15a5f9cf931dd526c022 100644
--- a/apps/user_ldap/appinfo/version
+++ b/apps/user_ldap/appinfo/version
@@ -1 +1 @@
-0.1.92
\ No newline at end of file
+0.2
\ No newline at end of file
diff --git a/core/templates/login.php b/core/templates/login.php
index a40bf5c330a8da2a3cc0655b87f29c21f74b5b03..41d6ba41ef8e0df52d9d04e7f67ca3e557664a98 100644
--- a/core/templates/login.php
+++ b/core/templates/login.php
@@ -1,7 +1,7 @@
 <!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]-->
 <form action="index.php" method="post">
 	<fieldset>
-		<?php if(!empty($_['redirect'])) { echo '<input type="hidden" name="redirect_url" value="'.$_['redirect'].'" />'; } ?>
+		<?php if(!empty($_['redirect'])) { echo '<input type="hidden" name="redirect_url" value="'.htmlentities($_['redirect']).'" />'; } ?>
 		<?php if($_['error']): ?>
 			<a href="./core/lostpassword/"><?php echo $l->t('Lost your password?'); ?></a>
 		<?php endif; ?>