diff --git a/src/contents/ui/main.qml b/src/contents/ui/main.qml
index a6511c4fe9457b1880033b9a48006a066eb91e49..096101b134c8079bf1a2a5461c40cc956f35c776 100644
--- a/src/contents/ui/main.qml
+++ b/src/contents/ui/main.qml
@@ -262,8 +262,18 @@ Kirigami.ApplicationWindow {
                     property var serviceId: Kirigami.PageRouter.data.id
                     Component.onCompleted: {
                         recordModel.changeVehicleFilter(serviceId);
+                        //Check vehicle warnings
                         dbAnalytics.checkOilChangeNeededForVehicle(serviceId);
                     }
+                    Connections {
+                        target: recordModel
+                        function onVehicleUpdated(vehicleId) {
+                            //Check vehicle warnings
+                            if(vehicleId == serviceId) {
+                                dbAnalytics.checkOilChangeNeededForVehicle(vehicleId);
+                            }
+                        }
+                    }
                     id: serviceRecordPage
                     title: qsTr("Service Records for ") + Kirigami.PageRouter.data.name
                     mainAction: Kirigami.Action {
@@ -290,7 +300,7 @@ Kirigami.ApplicationWindow {
                                         text: qsTr("You are due for an oil change!")
                                         Connections {
                                             target: dbAnalytics
-                                            onIsOilChangeNeeded: {
+                                            function onIsOilChangeNeeded(changeNeeded) {
                                                 oilMessage.visible = changeNeeded;
                                             }
                                         }
@@ -441,7 +451,6 @@ Kirigami.ApplicationWindow {
                                         }
                                         if(milesField.acceptableInput) {
                                             recordModel.addNewRecord(providerField.text, typeField.currentValue, typeText, dateObj.toISOString(), parseInt(milesField.text), notesField.text);
-                                            //TODO: check if emit signal to car warnings.
                                             router.popRoute();
                                         } else {
                                             formError.text = qsTr("Invalid number of miles.");
diff --git a/src/db/sqlservicerecord.cpp b/src/db/sqlservicerecord.cpp
index 7509c8ee23138770a1f88471550e028585142139..ed7a842c7065e6ba3ae872fdac9f3008932979e2 100644
--- a/src/db/sqlservicerecord.cpp
+++ b/src/db/sqlservicerecord.cpp
@@ -71,6 +71,7 @@ void SqlServiceRecord::addNewRecord(int vehicleId, QString serviceProvider, int
         printf("inserted new service record\n");
         this->database().commit();
         this->select();
+        emit this->vehicleUpdated(this->currentVehicleID);
     } else {
         this->database().rollback();
         printf("database error\n");
@@ -84,6 +85,7 @@ void SqlServiceRecord::removeRecord(int index)
         printf("removed service record\n");
         this->database().commit();
         this->select();
+        emit this->vehicleUpdated(this->currentVehicleID);
     } else {
         this->database().rollback();
         printf("database error\n");
diff --git a/src/db/sqlservicerecord.h b/src/db/sqlservicerecord.h
index 6816686d716a686f7253a34d72255df3ece5f093..8069207977c0ac52dab6773bd31f20806bc18efc 100644
--- a/src/db/sqlservicerecord.h
+++ b/src/db/sqlservicerecord.h
@@ -35,6 +35,8 @@ public:
     Q_INVOKABLE void removeRecord(int index);
     Q_INVOKABLE void changeVehicleFilter(int id);
     
+signals:
+    void vehicleUpdated(int vehicleId);
 private:
     int currentVehicleID = 0;