diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp
index 9dca45d7dd210fb952ce257818e1b0ed86b87cf5..e1d2e1c26dcc42703343993ea75afcc4c7b5e405 100644
--- a/src/processor/processor_tracker.cpp
+++ b/src/processor/processor_tracker.cpp
@@ -151,9 +151,9 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
             last_old_frame->remove();
 
             // Create new frame
-            FrameBasePtr frm = FrameBase::createNonKeyFrame<FrameBase>(incoming_ptr_->getTimeStamp(),
-                                                                       getProblem()->getFrameStructure(),
-                                                                       getProblem()->getState());
+            FrameBasePtr frm = std::make_shared<FrameBase>(incoming_ptr_->getTimeStamp(),
+                                                           getProblem()->getFrameStructure(),
+                                                           getProblem()->getState());
             incoming_ptr_->link(frm);
 
             // Detect new Features, initialize Landmarks, create Factors, ...
@@ -203,9 +203,9 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
                 resetDerived();
 
                 // make F; append incoming to new F
-                FrameBasePtr frm = FrameBase::createNonKeyFrame<FrameBase>(incoming_ptr_->getTimeStamp(),
-                                                                           getProblem()->getFrameStructure(),
-                                                                           last_ptr_->getFrame()->getState());
+                FrameBasePtr frm = std::make_shared<FrameBase>(incoming_ptr_->getTimeStamp(),
+                                                               getProblem()->getFrameStructure(),
+                                                               last_ptr_->getFrame()->getState());
                 incoming_ptr_->link(frm);
                 origin_ptr_ = last_ptr_;
                 last_ptr_   = incoming_ptr_;
@@ -221,9 +221,9 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr)
                 advanceDerived();
 
                 // Replace last frame for a new one in incoming
-                FrameBasePtr frm = FrameBase::createNonKeyFrame<FrameBase>(incoming_ptr_->getTimeStamp(),
-                                                                           getProblem()->getFrameStructure(),
-                                                                           last_ptr_->getFrame()->getState());
+                FrameBasePtr frm = std::make_shared<FrameBase>(incoming_ptr_->getTimeStamp(),
+                                                               getProblem()->getFrameStructure(),
+                                                               last_ptr_->getFrame()->getState());
                 incoming_ptr_->link(frm);
                 last_ptr_->getFrame()->remove(); // implicitly calling last_ptr_->remove();