diff --git a/Applications/DataExplorer/VtkVis/VtkVisImageItem.cpp b/Applications/DataExplorer/VtkVis/VtkVisImageItem.cpp
index e149727d410b73227267b9adc427da8ee7ef1477..ccfbf3b1f12af3188dfd4525b95320c405262423 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisImageItem.cpp
+++ b/Applications/DataExplorer/VtkVis/VtkVisImageItem.cpp
@@ -18,6 +18,8 @@
 // ThirdParty/logog
 #include "logog/include/logog.hpp"
 
+#include "BaseLib/FileTools.h"
+
 #include "VtkAlgorithmProperties.h"
 #include "VtkGeoImageSource.h"
 
@@ -140,15 +142,16 @@ void VtkVisImageItem::setVtkProperties(VtkAlgorithmProperties* vtkProps)
 
 int VtkVisImageItem::callVTKWriter(vtkAlgorithm* algorithm, const std::string &filename) const
 {
+	std::string file_name_cpy(filename);
 	vtkImageAlgorithm* algID = dynamic_cast<vtkImageAlgorithm*>(algorithm);
 	if (algID)
 	{
 		vtkSmartPointer<vtkXMLImageDataWriter> iWriter =
 		        vtkSmartPointer<vtkXMLImageDataWriter>::New();
 		iWriter->SetInputData(algID->GetOutputDataObject(0));
-		std::string filenameWithExt = filename;
-		filenameWithExt.append(".vti");
-		iWriter->SetFileName(filenameWithExt.c_str());
+		if (BaseLib::getFileExtension(filename).compare("vti") != 0)
+			file_name_cpy.append(".vti");
+		iWriter->SetFileName(file_name_cpy.c_str());
 		return iWriter->Write();
 	}
 	ERR("VtkVisPipelineItem::writeToFile() - Unknown data type.");
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp b/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
index 40e18a8ed777147c7b9cb0b29cc4b9face07a31e..da88986b71470c66ffaabb1c84b7e4e2df42b04a 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
+++ b/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
@@ -142,7 +142,7 @@ void VtkVisPipelineView::exportSelectedPipelineItemAsVtk()
 	QModelIndex idx = this->selectionModel()->currentIndex();
 	QString filename = QFileDialog::getSaveFileName(this, "Export object to vtk-file",
 	                                settings.value("lastExportedFileDirectory").toString(),
-									"All files (* *.*)");
+	                                "VTK file (*.*)");
 	if (!filename.isEmpty())
 	{
 		static_cast<VtkVisPipelineItem*>(static_cast<VtkVisPipeline*>(this->model())->
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPointSetItem.cpp b/Applications/DataExplorer/VtkVis/VtkVisPointSetItem.cpp
index 07962740387d78356a519a8363d06fe4e140cee2..bdfa3c975112014e0a38c53728613705c5771fc5 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPointSetItem.cpp
+++ b/Applications/DataExplorer/VtkVis/VtkVisPointSetItem.cpp
@@ -25,6 +25,8 @@
 // ThirdParty/logog
 #include "logog/include/logog.hpp"
 
+#include "BaseLib/FileTools.h"
+
 #include "VtkAlgorithmProperties.h"
 #include "VtkCompositeFilter.h"
 #include "VtkCompositeContourFilter.h"
@@ -212,33 +214,31 @@ void VtkVisPointSetItem::setVtkProperties(VtkAlgorithmProperties* vtkProps)
 
 int VtkVisPointSetItem::callVTKWriter(vtkAlgorithm* algorithm, const std::string &filename) const
 {
+	std::string file_name_cpy(filename);
 	vtkPolyDataAlgorithm* algPD = dynamic_cast<vtkPolyDataAlgorithm*>(algorithm);
-	vtkUnstructuredGridAlgorithm* algUG = dynamic_cast<vtkUnstructuredGridAlgorithm*>(algorithm);
 	if (algPD)
 	{
-//		vtkGenericDataObjectWriter* pdWriter = vtkGenericDataObjectWriter::New();
 		vtkSmartPointer<vtkXMLPolyDataWriter> pdWriter =
 		        vtkSmartPointer<vtkXMLPolyDataWriter>::New();
 		pdWriter->SetInputData(algPD->GetOutputDataObject(0));
-		//pdWriter->SetDataModeToAscii();
-		//pdWriter->SetCompressorTypeToNone();
-		std::string filenameWithExt = filename;
-		filenameWithExt.append(".vtp");
-		pdWriter->SetFileName(filenameWithExt.c_str());
+		if (BaseLib::getFileExtension(filename).compare("vtp") != 0)
+			file_name_cpy.append(".vtp");
+		pdWriter->SetFileName(file_name_cpy.c_str());
 		return pdWriter->Write();
 	}
-	else if (algUG)
+	
+	vtkUnstructuredGridAlgorithm* algUG = dynamic_cast<vtkUnstructuredGridAlgorithm*>(algorithm);
+	if (algUG)
 	{
 		vtkSmartPointer<vtkXMLUnstructuredGridWriter> ugWriter =
 		        vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
 		ugWriter->SetInputData(algUG->GetOutputDataObject(0));
-		//ugWriter->SetDataModeToAscii();
-		//ugWriter->SetCompressorTypeToNone();
-		std::string filenameWithExt = filename;
-		filenameWithExt.append(".vtu");
-		ugWriter->SetFileName(filenameWithExt.c_str());
+		if (BaseLib::getFileExtension(filename).compare("vtu") != 0)
+			file_name_cpy.append(".vtu");
+		ugWriter->SetFileName(file_name_cpy.c_str());
 		return ugWriter->Write();
 	}
+	
 	WARN("VtkVisPipelineItem::writeToFile(): Unknown data type.");
 	return 0;
 }