diff --git a/files/js/files.js b/files/js/files.js
index 901078680de6017a8a56e115526692b201146788..aed2d596272cf23aad1eeceb3f51734f98a2a067 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -87,11 +87,23 @@ $(document).ready(function() {
 				$('#file_upload_cancel').slideDown(250);
 				$('#file_upload_start').attr('mode', 'action');
 			});
+			$('#file_upload_start').focusin(function() {
+				if($('#fileSelector').val() == '') {
+					$('#fileSelector').hide();
+					$('#file_upload_start').unbind('focusin');
+				}
+			});
+			$('#fileSelector').focusout(function() {
+				if($('#fileSelector').val() == '') {
+					$('#fileSelector').hide();
+				}
+			});
 			$('#fileSelector').show();	//needed for Chromium compatibility
 			//rekonq does not call change-event, when click() is executed by script
 			if(navigator.userAgent.indexOf('rekonq') == -1){ 
 				$('#fileSelector').click();
 			}
+			$('#fileSelector').focus();
 		} else if($('#file_upload_start').attr('mode') == 'action') {
 			$('#file_upload_cancel').slideUp(250);
 			$('#file_upload_form').attr('uploading', true);