diff --git a/src/frame.cpp b/src/frame.cpp
index 8643da2931..ba20406265 100644
--- a/src/frame.cpp
+++ b/src/frame.cpp
@@ -68,8 +68,6 @@ frame::frame( frame && r )
     *this = std::move( r );
     if( owner )
         metadata_parsers = owner->get_md_parsers();
-    if( r.metadata_parsers )
-        metadata_parsers = std::move( r.metadata_parsers );
 }
 
 frame & frame::operator=( frame && r )
diff --git a/src/fw-logs/fw-log-data.cpp b/src/fw-logs/fw-log-data.cpp
index 1b77a8a7f3..8f03495f0e 100644
--- a/src/fw-logs/fw-log-data.cpp
+++ b/src/fw-logs/fw-log-data.cpp
@@ -15,7 +15,7 @@ namespace librealsense
 {
     namespace fw_logs
     {
-        fw_log_data::fw_log_data(void)
+        fw_log_data::fw_log_data()
         {
             _magic_number = 0;
             _severity = 0;
@@ -34,7 +34,7 @@ namespace librealsense
         }
 
 
-        fw_log_data::~fw_log_data(void)
+        fw_log_data::~fw_log_data()
         {
         }
 
diff --git a/src/gl/colorizer-gl.cpp b/src/gl/colorizer-gl.cpp
index fa60a46067..92452a2c5c 100644
--- a/src/gl/colorizer-gl.cpp
+++ b/src/gl/colorizer-gl.cpp
@@ -240,8 +240,6 @@ namespace librealsense
                 _depth_units = df->get_units();
                 bool disparity = f.get_profile().format() == RS2_FORMAT_DISPARITY32 ? true : false;
 
-                auto gf = dynamic_cast<gpu_addon_interface*>((frame_interface*)res.get());
-
                 uint32_t depth_texture;
                 uint32_t hist_texture = _cm_texture;
 
@@ -290,64 +288,68 @@ namespace librealsense
                     }
                 }
                 
-                uint32_t output_rgb;
-                gf->get_gpu_section().output_texture(0, &output_rgb, TEXTYPE_RGB);
-                glBindTexture(GL_TEXTURE_2D, output_rgb);
-                glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, _width, _height, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr);
-                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-
-                gf->get_gpu_section().set_size(_width, _height);
-
-                glBindFramebuffer(GL_FRAMEBUFFER, _fbo->get());
-                glDrawBuffer(GL_COLOR_ATTACHMENT0);
-
-                glBindTexture(GL_TEXTURE_2D, output_rgb);
-                _fbo->createTextureAttachment(output_rgb);
-
-                _fbo->bind();
-                glClearColor(1, 0, 0, 1);
-                glClear(GL_COLOR_BUFFER_BIT);
-
-                auto& shader = (colorize_shader&)_viz->get_shader();
-                shader.begin();
-                float max = _max;;
-                float min = _min;;
-                if (disparity)
+                if( auto gf = dynamic_cast< gpu_addon_interface * >( (frame_interface *)res.get() ) )
                 {
-                    auto __min = _min;
-                    if (__min < 1e-6f) { __min = 1e-6f; } // Min value set to prevent zero division. only when _min is zero. 
-                    max = (_d2d_convert_factor / (__min)) * _depth_units + .5f;
-                    min = (_d2d_convert_factor / (_max)) * _depth_units + .5f;
-                }
-                shader.set_params(_depth_units, min, max, MAX_DISPARITY, _equalize, disparity);
-                shader.end();
+                    uint32_t output_rgb = 0;
+                    gf->get_gpu_section().output_texture( 0, &output_rgb, TEXTYPE_RGB );
+                    glBindTexture( GL_TEXTURE_2D, output_rgb );
+                    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, _width, _height, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr );
+                    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+                    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
 
-                glActiveTexture(GL_TEXTURE0 + shader.histogram_slot());
-                glBindTexture(GL_TEXTURE_2D, hist_texture);
+                    gf->get_gpu_section().set_size( _width, _height );
 
-                glActiveTexture(GL_TEXTURE0 + shader.color_map_slot());
-                glBindTexture(GL_TEXTURE_2D, _cm_texture);
+                    glBindFramebuffer(GL_FRAMEBUFFER, _fbo->get());
+                    glDrawBuffer(GL_COLOR_ATTACHMENT0);
 
-                glActiveTexture(GL_TEXTURE0 + shader.texture_slot());
-                glBindTexture(GL_TEXTURE_2D, depth_texture);
+                    glBindTexture(GL_TEXTURE_2D, output_rgb);
+                    _fbo->createTextureAttachment(output_rgb);
 
-                _viz->draw_texture(depth_texture);
+                    _fbo->bind();
+                    glClearColor(1, 0, 0, 1);
+                    glClear(GL_COLOR_BUFFER_BIT);
 
-                glActiveTexture(GL_TEXTURE0 + shader.texture_slot());
+                    auto& shader = (colorize_shader&)_viz->get_shader();
+                    shader.begin();
+                    float max = _max;;
+                    float min = _min;;
+                    if (disparity)
+                    {
+                        auto __min = _min;
+                        if (__min < 1e-6f) { __min = 1e-6f; } // Min value set to prevent zero division. only when _min is zero. 
+                        max = (_d2d_convert_factor / (__min)) * _depth_units + .5f;
+                        min = (_d2d_convert_factor / (_max)) * _depth_units + .5f;
+                    }
+                    shader.set_params(_depth_units, min, max, MAX_DISPARITY, _equalize, disparity);
+                    shader.end();
 
-                _fbo->unbind();
+                    glActiveTexture(GL_TEXTURE0 + shader.histogram_slot());
+                    glBindTexture(GL_TEXTURE_2D, hist_texture);
 
-                glBindTexture(GL_TEXTURE_2D, 0);
+                    glActiveTexture(GL_TEXTURE0 + shader.color_map_slot());
+                    glBindTexture(GL_TEXTURE_2D, _cm_texture);
 
-                if (!f.is<rs2::gl::gpu_frame>())
-                {
-                    if (_equalize)
+                    glActiveTexture(GL_TEXTURE0 + shader.texture_slot());
+                    glBindTexture(GL_TEXTURE_2D, depth_texture);
+
+                    _viz->draw_texture(depth_texture);
+
+                    glActiveTexture(GL_TEXTURE0 + shader.texture_slot());
+
+                    _fbo->unbind();
+
+                    glBindTexture(GL_TEXTURE_2D, 0);
+
+                    if (!f.is<rs2::gl::gpu_frame>())
                     {
-                        glDeleteTextures(1, &hist_texture);
+                        if (_equalize)
+                        {
+                            glDeleteTextures(1, &hist_texture);
+                        }
+                        glDeleteTextures(1, &depth_texture);
                     }
-                    glDeleteTextures(1, &depth_texture);
                 }
+
             }, 
             [this]{
                 _enabled = false;
diff --git a/src/proc/units-transform.cpp b/src/proc/units-transform.cpp
index 8386b972f5..b4d207ca3c 100644
--- a/src/proc/units-transform.cpp
+++ b/src/proc/units-transform.cpp
@@ -63,8 +63,8 @@ namespace librealsense
 
         if (new_f && _depth_units)
         {
-            auto ptr = dynamic_cast<librealsense::depth_frame*>((librealsense::frame_interface*)new_f.get());
-            auto orig = dynamic_cast<librealsense::depth_frame*>((librealsense::frame_interface*)f.get());
+            auto ptr = reinterpret_cast< librealsense::frame_interface * >( new_f.get() );
+            auto orig = reinterpret_cast< librealsense::frame_interface * >( f.get() );
 
             auto depth_data = (uint16_t*)orig->get_frame_data();
             auto new_data = (float*)ptr->get_frame_data();
diff --git a/src/rs.cpp b/src/rs.cpp
index a4ba7823bb..e3984375d5 100644
--- a/src/rs.cpp
+++ b/src/rs.cpp
@@ -420,7 +420,6 @@ class calibration_change_callback : public rs2_calibration_change_callback
     {
         // Shouldn't get called...
         throw std::runtime_error( "calibration_change_callback::release() ?!?!?!" );
-        delete this;
     }
 };
 
diff --git a/src/software-sensor.cpp b/src/software-sensor.cpp
index fdad1be498..877a6d7130 100644
--- a/src/software-sensor.cpp
+++ b/src/software-sensor.cpp
@@ -217,10 +217,11 @@ frame_interface * software_sensor::allocate_new_frame( rs2_extension extension,
                                                        stream_profile_interface * profile,
                                                        frame_additional_data && data )
 {
+    auto frame_number = data.frame_number; // For logging
     auto frame = _source.alloc_frame( extension, 0, std::move( data ), false );
     if( ! frame )
     {
-        LOG_WARNING( "Failed to allocate frame " << data.frame_number << " type " << extension );
+        LOG_WARNING( "Failed to allocate frame " << frame_number << " type " << extension );
     }
     else
     {