diff --git a/GUI/Model/Fit/FitParameterProxyModel.cpp b/GUI/Model/Fit/FitParameterProxyModel.cpp
index ce6ff0b73cc1a2acb115cae435117cfd9d0dd2db..d2717a16bdaa2c3f12a0aa894459e5b58f57d724 100644
--- a/GUI/Model/Fit/FitParameterProxyModel.cpp
+++ b/GUI/Model/Fit/FitParameterProxyModel.cpp
@@ -252,7 +252,10 @@ QMimeData* FitParameterProxyModel::mimeData(const QModelIndexList& indexes) cons
     if (index.isValid()) {
         if (SessionItem* item = itemForIndex(index)) {
             QString path = item->value().toString();
-            mimeData->setData(GUI::Session::XML::LinkMimeType, path.toLatin1());
+            auto* parameterItem = FitParameterHelper::getParameterItem(m_root_item, path);
+            QByteArray data;
+            data.setNum(reinterpret_cast<qlonglong>(parameterItem));
+            mimeData->setData(GUI::Session::XML::LinkMimeType, data);
         }
     }
     return mimeData;
@@ -282,16 +285,16 @@ bool FitParameterProxyModel::dropMimeData(const QMimeData* data, Qt::DropAction
     if (parent.isValid()) {
         if (SessionItem* fitParItem = itemForIndex(parent)) {
             ASSERT(fitParItem->hasModelType<FitParameterItem>());
-            ParameterItem* parItem = FitParameterHelper::getParameterItem(
-                m_root_item, QString::fromLatin1(data->data(GUI::Session::XML::LinkMimeType)));
+            ParameterItem* parItem = reinterpret_cast<ParameterItem*>(
+                data->data(GUI::Session::XML::LinkMimeType).toULongLong());
             ASSERT(parItem);
-            FitParameterHelper::addToFitParameter(m_root_item, parItem, fitParItem->displayName());
+            m_root_item->addToFitParameter(parItem, fitParItem->displayName());
         }
     } else {
-        ParameterItem* parItem = FitParameterHelper::getParameterItem(
-            m_root_item, QString::fromLatin1(data->data(GUI::Session::XML::LinkMimeType)));
+        ParameterItem* parItem = reinterpret_cast<ParameterItem*>(
+            data->data(GUI::Session::XML::LinkMimeType).toULongLong());
         ASSERT(parItem);
-        FitParameterHelper::createFitParameter(m_root_item, parItem);
+        m_root_item->createFitParameter(parItem);
     }
     return true;
 }
diff --git a/GUI/Model/Fit/ParameterTuningModel.cpp b/GUI/Model/Fit/ParameterTuningModel.cpp
index fc856c93e1f4c93dcce5b8784521628d722b16fe..1a192b0c4180550224fe11dfbd918e245f6155b3 100644
--- a/GUI/Model/Fit/ParameterTuningModel.cpp
+++ b/GUI/Model/Fit/ParameterTuningModel.cpp
@@ -42,8 +42,9 @@ QMimeData* ParameterTuningModel::mimeData(const QModelIndexList& proxyIndexes) c
 
     for (auto proxyIndex : proxyIndexes) {
         if (ParameterItem* parameterItem = getParameterItem(proxyIndex)) {
-            QString path = FitParameterHelper::getParameterItemPath(parameterItem);
-            mimeData->setData(GUI::Session::XML::LinkMimeType, path.toLatin1());
+            QByteArray data;
+            data.setNum(reinterpret_cast<qlonglong>(parameterItem));
+            mimeData->setData(GUI::Session::XML::LinkMimeType, data);
             break;
         }
     }