diff -Nuar a/src/kaevent.cpp b/src/kaevent.cpp
--- a/src/kaevent.cpp	2017-12-04 13:20:32.000000000 +0300
+++ b/src/kaevent.cpp	2017-12-16 21:09:56.797883339 +0300
@@ -917,7 +917,9 @@
                 break;
             }
             // Fall through to AUDIO_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         case AUDIO_ALARM:
             mAudioFile   = data.cleanText;
             mSpeak       = data.speak  &&  mAudioFile.isEmpty();
@@ -992,7 +994,9 @@
                 noSetNextTime = true;
             }
             // fall through to REMINDER_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         case REMINDER_ALARM:
         case AT_LOGIN_ALARM:
         case DISPLAYING_ALARM:
@@ -1000,7 +1004,9 @@
                 mNextMainDateTime = alTime;
             }
             // fall through to MAIN_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         case MAIN_ALARM:
             // Ensure that the basic fields are set up even if there is no main
             // alarm in the event (if it has expired and then been deferred)
@@ -1014,7 +1020,9 @@
                         break;
                     }
                     // fall through to MESSAGE
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
                     Q_FALLTHROUGH();
+#endif
                 case KAAlarm::MESSAGE:
                     mFont           = data.font;
                     mUseDefaultFont = data.defaultFont;
@@ -1022,7 +1030,9 @@
                         isEmailText = true;
                     }
                     // fall through to FILE
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
                     Q_FALLTHROUGH();
+#endif
                 case KAAlarm::FILE:
                     mBgColour = data.bgColour;
                     mFgColour = data.fgColour;
@@ -1552,7 +1562,9 @@
         if (mRepetition)
             alarm->setCustomProperty(KACalendar::APPNAME, NEXT_REPEAT_PROPERTY,
                                      QString::number(mNextRepeat));
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case REMINDER_ALARM:
     case INVALID_ALARM: {
         if (types == QStringList(REMINDER_TYPE)
@@ -1566,7 +1578,9 @@
         case KAEvent::FILE:
             alltypes += FILE_TYPE;
             // fall through to MESSAGE
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         case KAEvent::MESSAGE:
             alarm->setDisplayAlarm(AlarmText::toCalendarText(mText));
             display = true;
@@ -3503,7 +3517,9 @@
                 break;
             }
             // fall through to DEFERRED_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         case KAAlarm::DEFERRED_ALARM:
             if (mDeferral != NO_DEFERRAL) {
                 al_d->mType             = (mDeferral == REMINDER_DEFERRAL) ? KAAlarm::DEFERRED_REMINDER_ALARM : KAAlarm::DEFERRED_ALARM;
@@ -3579,7 +3595,9 @@
             return alarm(KAAlarm::REMINDER_ALARM);
         }
         // fall through to REMINDER_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case KAAlarm::REMINDER_ALARM:
         // There can only be one deferral alarm
         if (mDeferral == REMINDER_DEFERRAL) {
@@ -3589,20 +3607,26 @@
             return alarm(KAAlarm::DEFERRED_ALARM);
         }
         // fall through to DEFERRED_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case KAAlarm::DEFERRED_REMINDER_ALARM:
     case KAAlarm::DEFERRED_ALARM:
         if (mRepeatAtLogin) {
             return alarm(KAAlarm::AT_LOGIN_ALARM);
         }
         // fall through to AT_LOGIN_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case KAAlarm::AT_LOGIN_ALARM:
         if (mDisplaying) {
             return alarm(KAAlarm::DISPLAYING_ALARM);
         }
         // fall through to DISPLAYING_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case KAAlarm::DISPLAYING_ALARM:
     // fall through to default
     case KAAlarm::INVALID_ALARM:
@@ -3646,7 +3670,9 @@
             --mAlarmCount;
         }
         // fall through to AT_LOGIN_ALARM
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case KAAlarm::AT_LOGIN_ALARM:
         if (mRepeatAtLogin) {
             // Remove the at-login alarm, but keep a note of it for archiving purposes
@@ -3969,7 +3995,9 @@
             break;
         }
         // fall through to Display
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case Alarm::Display: {
         if (alarm->type() == Alarm::Display) {
             data.action    = KAAlarm::MESSAGE;
@@ -5014,7 +5042,9 @@
                 case KAAlarm::FILE:
                     types += KAEventPrivate::FILE_TYPE;
                     // fall through to MESSAGE
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
                     Q_FALLTHROUGH();
+#endif
                 case KAAlarm::MESSAGE:
                     alarm->setDisplayAlarm(altxt);
                     break;
@@ -5873,7 +5903,9 @@
                     break;
                 }
                 // fall through to default
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
                 Q_FALLTHROUGH();
+#endif
             default:
                 command += ch;
                 break;
diff -Nuar a/src/karecurrence.cpp b/src/karecurrence.cpp
--- a/src/karecurrence.cpp	2017-12-04 13:20:32.000000000 +0300
+++ b/src/karecurrence.cpp	2017-12-16 21:24:22.815820852 +0300
@@ -319,7 +319,9 @@
             // Convert an hourly recurrence to a minutely one
             rrule->setRecurrenceType(RecurrenceRule::rMinutely);
             rrule->setFrequency(rrule->frequency() * 60);
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
             Q_FALLTHROUGH();
+#endif
         // fall through to rMinutely
         case Recurrence::rMinutely:
         case Recurrence::rDaily:
@@ -493,7 +495,9 @@
             break;
         }
         // fall through to rWeekly
+#if QT_VERSION >= QT_VERSION_CHECK(5,8,0)
         Q_FALLTHROUGH();
+#endif
     case WEEKLY:
     case MONTHLY_POS:
         recur.defaultRRule(true)->setByDays(rrule->byDays());
