diff --git a/lib/api/users.rb b/lib/api/users.rb
index e868f628404d147ded45db313115dfe1c36f5ac0..c28e07a76b711f2e5979c97cb7a8e1f3cd321ec6 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -333,11 +333,11 @@ class Users < Grape::API
         user = User.find_by(id: declared(params).id)
         not_found!('User') unless user
 
-        events = user.recent_events.
+        events = user.events.
           merge(ProjectsFinder.new.execute(current_user)).
           references(:project).
           with_associations.
-          page(params[:page])
+          recent
 
         present paginate(events), with: Entities::Event
       end
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index d48752473f3db7426c98e443e972f34a80de450a..ae8639d78d5e41f0ca36d3d5a04f9d3b6a8db6fd 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -958,6 +958,29 @@
           expect(joined_event['author']['name']).to eq(user.name)
         end
       end
+
+      context 'when there are multiple events from different projects' do
+        let(:second_note) { create(:note_on_issue, project: create(:empty_project)) }
+        let(:third_note) { create(:note_on_issue, project: project) }
+
+        before do
+          second_note.project.add_user(user, :developer)
+
+          [second_note, third_note].each do |note|
+            EventCreateService.new.leave_note(note, user)
+          end
+        end
+
+        it 'returns events in the correct order (from newest to oldest)' do
+          get api("/users/#{user.id}/events", user)
+
+          comment_events = json_response.select { |e| e['action_name'] == 'commented on' }
+
+          expect(comment_events[0]['target_id']).to eq(third_note.id)
+          expect(comment_events[1]['target_id']).to eq(second_note.id)
+          expect(comment_events[2]['target_id']).to eq(note.id)
+        end
+      end
     end
 
     it 'returns a 404 error if not found' do