diff --git a/inc/Classes.php b/inc/Classes.php
index 16a9961..6bfa0c8 100644
--- a/inc/Classes.php
+++ b/inc/Classes.php
@@ -4,15 +4,20 @@
 class Classes {
   // Marge en segons per seguir retornant una assignatura abans o després que
   // acabi, quan s'obtenen les classes actuals.
-  const MARGIN_BEGINS = 0*60;
-  const MARGIN_ENDS = 0*60;
+  const MARGIN_BEGINS = 5*60;
+  const MARGIN_ENDS = 5*60;
 
   public static function getCurrentClasses() {
     global $con;
 
     $isSignedIn = Users::isSignedIn();
 
-    $sentence = 'SELECT c.id, c.calendar_name, c.room, c.begins, c.ends, c.calendar_name, s.id subject_id, s.friendly_name'.($isSignedIn ? ', u_s.id user_subject_id' : '').'
+    $sentence = 'SELECT c.id, c.calendar_name, c.room, c.begins, c.ends, c.calendar_name, s.id subject_id, s.friendly_name'.($isSignedIn ? ', u_s.id user_subject_id' : '').',
+          CASE
+            WHEN c.begins > UNIX_TIMESTAMP() OR c.ends < UNIX_TIMESTAMP()
+              THEN 0
+              ELSE 1
+          END is_current
         FROM classes c
         LEFT OUTER JOIN subjects s
           ON c.calendar_name = s.calendar_name
@@ -20,13 +25,17 @@
           ON s.id = u_s.subject_id
         ' : '').
         'WHERE
-          c.begins - '.self::MARGIN_BEGINS.' < UNIX_TIMESTAMP() AND
-          c.ends + '.self::MARGIN_ENDS.' > UNIX_TIMESTAMP()'.($isSignedIn ? ' AND
+          c.begins - '.self::MARGIN_BEGINS.' <= UNIX_TIMESTAMP() AND
+          c.ends + '.self::MARGIN_ENDS.' >= UNIX_TIMESTAMP()'.($isSignedIn ? ' AND
           (
             u_s.user_id = :user_id OR
             u_s.subject_id IS NULL
           )': '').'
-        ORDER BY s.id IS NULL, '.($isSignedIn ? 'u_s.subject_id IS NULL, ' : '').'s.friendly_name ASC';
+        ORDER BY
+          s.id IS NULL,
+          is_current DESC,
+          '.($isSignedIn ? 'u_s.subject_id IS NULL,
+          ' : '').'s.friendly_name ASC';
     $query = $con->prepare($sentence);
     
     if (!$query->execute(($isSignedIn ? ['user_id' => Users::getUserId()] : [])))
