diff --git a/src/Lib/Ass/Line.cc b/src/Lib/Ass/Line.cc
index 27a2c35ed8aaacadba6fe62504d6fdcc4b24faed..51158b433d8da193e525fae37af1148300f62758 100644
--- a/src/Lib/Ass/Line.cc
+++ b/src/Lib/Ass/Line.cc
@@ -158,3 +158,9 @@ Line::getContentAsText() const noexcept
 {
     return ___contentAsText;
 }
+
+void
+Line::setContent(const QVector<Syl>& syls) noexcept
+{
+    content = syls;
+}
diff --git a/src/Lib/Ass/Line.hh b/src/Lib/Ass/Line.hh
index a5fffb0d67e4398337dab433bdf8eddbce7fde28..8b8036b2c4fc1e4ebd0333257d57e0088a0d78fd 100644
--- a/src/Lib/Ass/Line.hh
+++ b/src/Lib/Ass/Line.hh
@@ -43,6 +43,7 @@ public:
     StyleProperties getStyleProperties() const noexcept;
     StyleWeakPtr getStyle() const noexcept;
     const QVector<Syl> &getContent() const noexcept;
+    void setContent(const QVector<Syl>&) noexcept;
 
     QVector<Syl> *getContentPtr() noexcept; // FIXME: remove me
 
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
index a456223153ca2e7076e8dc7435b62d30d8b7030d..4092b07d525ba24ecfe1efdf88dbd7129977c754 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
@@ -112,7 +112,7 @@ qreal
 TimingLine::requestMove(int sepIndex, qreal x)
 {
     QRectF sceneRect        = mapRectFromScene(scene()->sceneRect());
-    QVector<Ass::Syl> *syls = line.getContentPtr();
+    QVector<Ass::Syl> syls = line.getContent();
 
     qreal ret = x;
     qreal mini, maxi;
@@ -121,7 +121,7 @@ TimingLine::requestMove(int sepIndex, qreal x)
         prepareGeometryChange();
 
         mini = sceneRect.left();
-        maxi = sepIndex < syls->size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
+        maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
                                            : TimingUtils::posFromMs(int(line.getDuration()) * 10);
 
         if (ret < mini)
@@ -132,14 +132,14 @@ TimingLine::requestMove(int sepIndex, qreal x)
         tempOffset = ret;
 
         quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - ret)) / 10);
-        (*syls)[0].setDuration(dur1);
+        syls[0].setDuration(dur1);
         timingSyls[0]->setLen(dur1);
         timingSyls[0]->setPos(ret, 0);
         line.setStart(
             quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
     }
 
-    else if (sepIndex >= syls->size()) {
+    else if (sepIndex >= syls.size()) {
         prepareGeometryChange();
 
         mini = timingSyls[sepIndex - 1]->pos().x();
@@ -152,14 +152,14 @@ TimingLine::requestMove(int sepIndex, qreal x)
 
         quint64 dur2 =
             quint64(TimingUtils::msFromPos(int(ret - timingSyls[sepIndex - 1]->pos().x())) / 10);
-        (*syls)[sepIndex - 1].setDuration(dur2);
+        syls[sepIndex - 1].setDuration(dur2);
         timingSyls[sepIndex - 1]->setLen(dur2);
         line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(ret)) / 10));
     }
 
     else {
         mini = timingSyls[sepIndex - 1]->pos().x();
-        maxi = sepIndex < syls->size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
+        maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
                                            : TimingUtils::posFromMs(int(line.getDuration() * 10));
 
         if (ret < mini)
@@ -167,7 +167,7 @@ TimingLine::requestMove(int sepIndex, qreal x)
         if (ret > maxi)
             ret = maxi;
 
-        quint64 sumDur = (*syls)[sepIndex].getDuration() + (*syls)[sepIndex - 1].getDuration();
+        quint64 sumDur = syls[sepIndex].getDuration() + syls[sepIndex - 1].getDuration();
         quint64 dur1   = quint64(
               TimingUtils::msFromPos(int(ret) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
         if (dur1 > sumDur) {
@@ -175,13 +175,15 @@ TimingLine::requestMove(int sepIndex, qreal x)
         }
         quint64 dur2 = sumDur - dur1;
 
-        (*syls)[sepIndex - 1].setDuration(dur1);
-        (*syls)[sepIndex].setDuration(dur2);
+        syls[sepIndex - 1].setDuration(dur1);
+        syls[sepIndex].setDuration(dur2);
 
         timingSyls[sepIndex - 1]->setLen(dur1);
         timingSyls[sepIndex]->setPos(ret, 0);
         timingSyls[sepIndex]->setLen(dur2);
     }
 
+    line.setContent(syls);
+
     return ret;
 }