diff --git a/src/pulsaranimationwidget.cpp b/src/pulsaranimationwidget.cpp
index 5855e2482ebf878454d046f1768d3f8cdc05beb7..a6d169baa376081fee699a156403280cb9985cba 100644
--- a/src/pulsaranimationwidget.cpp
+++ b/src/pulsaranimationwidget.cpp
@@ -64,7 +64,8 @@ PulsarAnimationWidget::PulsarAnimationWidget(QWidget *parent) :
 	m_framesPerSecond = 25;
 	m_pulsarRotationDelta = 0.0;
 	m_orbitRotationDelta = 0.0;
-	resetParameters();
+	m_pulsarRotationAngle = 0.0;
+	m_orbitRotationAngle = 0.0;
 
 	// initial binary system parameters (have to match GUI!)
 	m_pulsarMass = 1.4;
@@ -393,7 +394,7 @@ void PulsarAnimationWidget::updateFrame()
 
 	updateGL();
 
-	emit pulsarAnimationStep(m_pulsarRotationDelta);
+	emit pulsarAnimationStep(m_pulsarRotationAngle);
 }
 
 void PulsarAnimationWidget::showOrbits(bool enabled)
@@ -455,6 +456,7 @@ void PulsarAnimationWidget::mouseReleaseEvent(QMouseEvent *event)
 	m_mouseLastX = 0;
 	m_mouseLastY = 0;
 	m_cameraInteraction = false;
+
 	updateGL();
 }
 
@@ -554,8 +556,9 @@ void PulsarAnimationWidget::resetParameters()
 {
 	m_pulsarRotationAngle = 0.0;
 	m_orbitRotationAngle = 0.0;
+	updatePulseProfile();
 
-	emit pulsarAnimationReset();
+	emit pulsarAnimationStep(m_pulsarRotationAngle);
 }
 
 void PulsarAnimationWidget::updatePulseProfile()
diff --git a/src/pulsaranimationwidget.h b/src/pulsaranimationwidget.h
index b4ac3e17ccd51ba920278005bc16aa7cbbfa2ddf..cd7ee995269b26c926212b28bed2b71c99512217 100644
--- a/src/pulsaranimationwidget.h
+++ b/src/pulsaranimationwidget.h
@@ -59,8 +59,7 @@ public slots:
 signals:
 	void pulsarSemiMajorAxisUpdated(double value);
 	void pulseProfileUpdated(const QVector<double>& data);
-	void pulsarAnimationStep(double stepSize);
-	void pulsarAnimationReset();
+	void pulsarAnimationStep(double position);
 
 private:
     void initializeGL();
diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp
index f0c4019aedea7570376bb34213ad1551c93d5697..bb77ceb3f3136033950fbe445ad177a59efa3ed2 100644
--- a/src/pulsatingscience.cpp
+++ b/src/pulsatingscience.cpp
@@ -73,10 +73,7 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent)
 				this, SLOT(updatePulsarSemiMajorAxisValue(double)));
 
 	connect(ui.pulsarGlWidget, SIGNAL(pulsarAnimationStep(double)),
-				ui.pulseScopeWidget, SLOT(markerStep(double)), Qt::DirectConnection);
-
-	connect(ui.pulsarGlWidget, SIGNAL(pulsarAnimationReset()),
-				ui.pulseScopeWidget, SLOT(markerReset()));
+				ui.pulseScopeWidget, SLOT(setMarker(double)), Qt::DirectConnection);
 
 	connect(ui.pulsarGlWidget, SIGNAL(pulseProfileUpdated(const QVector<double>&)),
 				ui.pulseScopeWidget, SLOT(drawCurve(const QVector<double>&)), Qt::DirectConnection);
diff --git a/src/pulsescopewidget.cpp b/src/pulsescopewidget.cpp
index 0b83e8ddc01fcbfa83ebbf1621b8f658d5e09135..e75bec9c89e6b4fe0de2986b005f9a6e5280fe54 100644
--- a/src/pulsescopewidget.cpp
+++ b/src/pulsescopewidget.cpp
@@ -83,18 +83,6 @@ void PulseScopeWidget::drawCurve(const QVector<double>& vector)
 	}
 }
 
-void PulseScopeWidget::markerStep(double stepSize) {
-	static double x = 0.0;
-
-	if(x < m_scopeSizeH) {
-		x += stepSize;
-		m_marker->setLine(x, 0.0, x, m_scopeSizeV);
-	}
-	else {
-		x -= m_scopeSizeH;
-	}
-}
-
-void PulseScopeWidget::markerReset() {
-	m_marker->setLine(0.0, 0.0, 0.0, m_scopeSizeV);
+void PulseScopeWidget::setMarker(double position) {
+	m_marker->setLine(position, 0.0, position, m_scopeSizeV);
 }
diff --git a/src/pulsescopewidget.h b/src/pulsescopewidget.h
index 96192a380d5ad0a4ff47fa7da3fc7ffacacaf916..267ef2f644a157b6f5576b1a80a973a51c19efe7 100644
--- a/src/pulsescopewidget.h
+++ b/src/pulsescopewidget.h
@@ -42,8 +42,7 @@ public:
 
 public slots:
 	void drawCurve(const QVector<double>& vector);
-	void markerStep(double stepSize);
-	void markerReset();
+	void setMarker(double position);
 
 private:
 	QGraphicsScene m_scene;