diff --git a/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee b/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee
index edb45b8d693d74866dd358642d52056029cd2ae5..14bcf19abfed5573346adbbb7dd269f82f9ba253 100644
--- a/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee
+++ b/packages/rocketchat-ui-flextab/flex-tab/tabs/uploadedFilesList.coffee
@@ -24,9 +24,7 @@ Template.uploadedFilesList.helpers
 		return s.escapeHTML @name
 
 	canDelete: ->
-		msg = ChatMessage.findOne { file: { _id: @_id } }
-		if msg
-			return RocketChat.authz.hasAtLeastOnePermission('delete-message', msg.rid) or RocketChat.settings.get('Message_AllowDeleting') and msg.u?._id is Meteor.userId()
+		return RocketChat.authz.hasAtLeastOnePermission('delete-message', @rid) or RocketChat.settings.get('Message_AllowDeleting') and @userId is Meteor.userId()
 
 Template.uploadedFilesList.events
 	'click .room-file-item': (e, t) ->
@@ -53,9 +51,15 @@ Template.uploadedFilesList.events
 				timer: 1000
 				showConfirmButton: false
 
+				# Check if the upload message for this file is currently loaded
 				msg = ChatMessage.findOne { file: { _id: self._id } }
 				RocketChat.models.Uploads.remove self._id, () ->
-					chatMessages[Session.get('openedRoom')].deleteMsg(msg);
+					if msg
+						chatMessages[Session.get('openedRoom')].deleteMsg(msg);
+					else
+						Meteor.call 'deleteFileMessage', self._id, (error, result) ->
+							if error
+								return Errors.throw error.reason
 
 	'scroll .content': _.throttle (e, t) ->
 		if e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight
diff --git a/server/methods/deleteMessage.coffee b/server/methods/deleteMessage.coffee
index 7244a1350f261c96a4036ab4a106bda040527a18..d51985e786b930f5953bd9488f72375024805576 100644
--- a/server/methods/deleteMessage.coffee
+++ b/server/methods/deleteMessage.coffee
@@ -38,4 +38,8 @@ Meteor.methods
 		if showDeletedStatus
 			RocketChat.models.Messages.setAsDeletedById originalMessage._id
 		else
-			RocketChat.Notifications.notifyRoom originalMessage.rid, 'deleteMessage', { _id: originalMessage._id }
+			RocketChat.Notifications.notifyRoom originalMessage.rid, 'deleteMessage', {_id: originalMessage._id}
+
+	,
+	deleteFileMessage: (fileID) ->
+		Meteor.call 'deleteMessage', RocketChat.models.Messages.findOne { file: { _id: fileID } }
diff --git a/server/publications/roomFiles.coffee b/server/publications/roomFiles.coffee
index e69b75a400680fb4bade2ec7f96409f05ec66af6..7bbf518ffec941e71f087df141c2c33b12b3332c 100644
--- a/server/publications/roomFiles.coffee
+++ b/server/publications/roomFiles.coffee
@@ -17,6 +17,7 @@ Meteor.publish 'roomFiles', (rid, limit = 50) ->
 			uploadedAt: -1
 		fields:
 			_id: 1
+			userId: 1
 			rid: 1
 			name: 1
 			type: 1