diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt
index 23b89030039992f1808db694df17a7586f0f2cd2..dda43aef1a4ffa075edaa88d602236b91742a7d4 100755
--- a/Testing/Code/IO/CMakeLists.txt
+++ b/Testing/Code/IO/CMakeLists.txt
@@ -1886,6 +1886,14 @@ ADD_TEST(ioTvPointSetFileReader ${IO_TESTS17}
         otbPointSetFileReader
   ${INPUTDATA}/srs.las
   ${TEMP}/ioPointSetFileReader.txt)
+
+ADD_TEST(ioTvPointSetFileReader2 ${IO_TESTS17}
+        --compare-ascii ${EPSILON_9}  ${BASELINE_FILES}/ioPointSetFileReader2.txt
+                        ${TEMP}/ioPointSetFileReader2.txt
+        otbPointSetFileReader2
+  ${INPUTDATA}/srs.las
+  ${TEMP}/ioPointSetFileReader2.txt)
+
 ENDIF(OTB_USE_LIBLAS)
 
 
@@ -2076,6 +2084,7 @@ otbImageSeriesFileReader.cxx
 SET(BasicIO_SRCS17
 otbPointSetFileReaderNew.cxx
 otbPointSetFileReader.cxx
+otbPointSetFileReader2.cxx
 otbImageMetadataInterfaceNew.cxx
 otbImageMetadataInterfaceTest.cxx
 otbImageMetadataInterfaceTest2.cxx
diff --git a/Testing/Code/IO/otbIOTests17.cxx b/Testing/Code/IO/otbIOTests17.cxx
index 5e340857b17b8752a325b5c8948b7b2e2e3c7c10..58cdbe81e4b75cb980bb2b57fafe5647533de87d 100644
--- a/Testing/Code/IO/otbIOTests17.cxx
+++ b/Testing/Code/IO/otbIOTests17.cxx
@@ -30,6 +30,7 @@ void RegisterTests()
 {
 REGISTER_TEST(otbPointSetFileReaderNew);
 REGISTER_TEST(otbPointSetFileReader);
+REGISTER_TEST(otbPointSetFileReader2);
 REGISTER_TEST(otbImageMetadataInterfaceNew);
 REGISTER_TEST(otbImageMetadataInterfaceTest);
 REGISTER_TEST(otbImageMetadataInterfaceTest2);
diff --git a/Testing/Code/IO/otbPointSetFileReader2.cxx b/Testing/Code/IO/otbPointSetFileReader2.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..ae952b218aea339f9ceabe1bd09347773bb7a453
--- /dev/null
+++ b/Testing/Code/IO/otbPointSetFileReader2.cxx
@@ -0,0 +1,53 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+
+#include "otbPointSetFileReader.h"
+#include "itkPointSet.h"
+#include "itkNumericTraits.h"
+#include <fstream>
+
+int otbPointSetFileReader2(int argc, char * argv[])
+{
+  typedef itk::PointSet <double, 3> PointSetType;
+  typedef otb::PointSetFileReader<PointSetType> PointSetFileReaderType;
+  PointSetFileReaderType::Pointer reader = PointSetFileReaderType::New();
+
+  reader->SetFileName(argv[1]);
+  reader->Update();
+
+  PointSetType::Pointer data = reader->GetOutput();
+
+
+  std::ofstream fout (argv[2]);
+  unsigned long nPoints = data->GetNumberOfPoints();
+  fout << std::setprecision(15) << "Number of points: " << nPoints << std::endl;
+
+  for (unsigned long i=0; i < nPoints; ++i)
+  {
+    PointSetType::PointType point;
+    data->GetPoint(i,&point);
+    fout << point << " : ";
+    PointSetType::PixelType value(itk::NumericTraits<PointSetType::PixelType>::Zero);
+    data->GetPointData(i,&value);
+    fout << value << std::endl;
+  }
+  fout << std::endl;
+  fout.close();
+  return EXIT_SUCCESS;
+}
+