diff --git a/Outputs/CRT/Internals/CRTOpenGL.cpp b/Outputs/CRT/Internals/CRTOpenGL.cpp
index c60f515d7..244857dff 100644
--- a/Outputs/CRT/Internals/CRTOpenGL.cpp
+++ b/Outputs/CRT/Internals/CRTOpenGL.cpp
@@ -209,7 +209,7 @@ void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int out
 
 			glDisable(GL_BLEND);
 
-			size_t new_data_size = _drawn_source_buffer_data_pointer - _source_buffer_data_pointer;
+			size_t new_data_size = _source_buffer_data_pointer - _drawn_source_buffer_data_pointer;
 			size_t new_data_start = _drawn_source_buffer_data_pointer;
 			_source_buffer_data_pointer %= SourceVertexBufferDataSize;
 			_drawn_source_buffer_data_pointer = _source_buffer_data_pointer;
@@ -220,7 +220,7 @@ void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int out
 				new_data_start = 0;
 			}
 
-			size_t first_data_length = std::max(SourceVertexBufferDataSize - new_data_start, new_data_size);
+			size_t first_data_length = std::min(SourceVertexBufferDataSize - new_data_start, new_data_size);
 			glDrawArrays(GL_LINES, (GLint)(new_data_start / SourceVertexSize), (GLsizei)(first_data_length / SourceVertexSize));
 			if(new_data_size > first_data_length)
 			{
diff --git a/Outputs/CRT/Internals/CRTOpenGL.hpp b/Outputs/CRT/Internals/CRTOpenGL.hpp
index ae9897487..26307df82 100644
--- a/Outputs/CRT/Internals/CRTOpenGL.hpp
+++ b/Outputs/CRT/Internals/CRTOpenGL.hpp
@@ -116,7 +116,7 @@ class OpenGLOutputBuilder {
 
 		inline void complete_source_run()
 		{
-			_source_buffer_data_pointer += 2 * SourceVertexSize;;
+			_source_buffer_data_pointer += 2 * SourceVertexSize;
 			_output_mutex->unlock();
 		}