diff --git a/codepot/src/codepot/views/file_home.php b/codepot/src/codepot/views/file_home.php
index 07410337..b054f999 100644
--- a/codepot/src/codepot/views/file_home.php
+++ b/codepot/src/codepot/views/file_home.php
@@ -58,7 +58,7 @@ var import_in_progress = false;
 var populated_file_obj = [];
 var populated_file_max = 0;
 
-function populate_selected_files ()
+function populate_selected_files_with (files)
 {
 	var file_desc = {};
 	for (var n = 0; n < populated_file_max; n++)
@@ -71,26 +71,26 @@ function populate_selected_files ()
 		}
 	}
 
-	$('#file_home_new_file_table').empty();
+	var new_file_table = $('#file_home_new_file_table');
+	new_file_table.empty();
 	populated_file_obj = [];
 
-	var f = $('#file_home_new_files').get(0);
 	var f_no = 0;
-	for (var n = 0; n < f.files.length; n++)
+	for (var n = 0; n < files.length; n++)
 	{
-		if (f.files[n] != null) 
+		if (files[n] != null) 
 		{
-			var desc = file_desc[f.files[n].name];
+			var desc = file_desc[files[n].name];
 			if (desc == null) desc = '';
 
-			$('#file_home_new_file_table').append (
+			new_file_table.append (
 				codepot_sprintf (
 					'
 | %s |  | 
', 
-					f_no, f_no, f_no, codepot_htmlspecialchars(f.files[n].name), f_no, codepot_addslashes(desc)
+					f_no, f_no, f_no, codepot_htmlspecialchars(files[n].name), f_no, codepot_addslashes(desc)
 				)
 			);
 
-			populated_file_obj[f_no] = f.files[n];
+			populated_file_obj[f_no] = files[n];
 			f_no++;
 		}
 	}
@@ -98,6 +98,11 @@ function populate_selected_files ()
 	populated_file_max = f_no;
 }
 
+function populate_selected_files ()
+{
+	return populate_selected_files_with ($('#file_home_new_files').get(0).files);
+}
+
 function cancel_out_new_file (no)
 {
 	$('#file_home_new_file_row_' + no).remove ();
@@ -219,6 +224,32 @@ $(function () {
 			return false; // prevent the default behavior
 		}
 	);
+
+	var file_drag_event_handler = function(e) { return false; };
+	var file_drop_event_handler = function(e)
+	{
+		var aff = $('#file_home_new_form_div');
+		aff.dialog('close');
+		populate_selected_files_with(e.originalEvent.dataTransfer.files);
+		aff.dialog('open');
+		return false;
+	};
+
+	var tmp = $('#file_home_content');
+	tmp.bind('dragstart', file_drag_event_handler);
+	tmp.bind('dragenter', file_drag_event_handler);
+	tmp.bind('dragleave', file_drag_event_handler);
+	tmp.bind('dragover', file_drag_event_handler);
+	tmp.bind('dragend', file_drop_event_handler);
+	tmp.bind('drop', file_drop_event_handler);
+
+	var tmp = $('#file_home_new_form_div').dialog();
+	tmp.bind('dragstart', file_drag_event_handler);
+	tmp.bind('dragenter', file_drag_event_handler);
+	tmp.bind('dragleave', file_drag_event_handler);
+	tmp.bind('dragover', file_drag_event_handler);
+	tmp.bind('dragend', file_drop_event_handler);
+	tmp.bind('drop', file_drop_event_handler);
 
 
 });
diff --git a/codepot/src/codepot/views/file_show.php b/codepot/src/codepot/views/file_show.php
index 55c6cfbb..da6e0dc2 100644
--- a/codepot/src/codepot/views/file_show.php
+++ b/codepot/src/codepot/views/file_show.php
@@ -570,11 +570,17 @@ $(function () {
 	};
 
 	var tmp = $('#file_show_content');
+	tmp.bind('dragstart', file_drag_event_handler);
+	tmp.bind('dragenter', file_drag_event_handler);
+	tmp.bind('dragleave', file_drag_event_handler);
 	tmp.bind('dragover', file_drag_event_handler);
 	tmp.bind('dragend', file_drop_event_handler);
 	tmp.bind('drop', file_drop_event_handler);
 
 	var tmp = $('#file_show_add_file_form').dialog();
+	tmp.bind('dragstart', file_drag_event_handler);
+	tmp.bind('dragenter', file_drag_event_handler);
+	tmp.bind('dragleave', file_drag_event_handler);
 	tmp.bind('dragover', file_drag_event_handler);
 	tmp.bind('dragend', file_drop_event_handler);
 	tmp.bind('drop', file_drop_event_handler);