1diff --git a/Utilities/VTK/Applications/gdcm2vtk.cxx b/Utilities/VTK/Applications/gdcm2vtk.cxx
2index 344aec0df..c1cd4b43d 100644
3--- a/Utilities/VTK/Applications/gdcm2vtk.cxx
4+++ b/Utilities/VTK/Applications/gdcm2vtk.cxx
5@@ -498,7 +498,7 @@ int main(int argc, char *argv[])
6 {
7 imgreader->SetFileLowerLeft( lowerleft );
8 if( names->GetNumberOfValues() == 1 )
9- imgreader->SetFileName( names->GetValue(0) );
10+ imgreader->SetFileName( names->GetValue(0).c_str() );
11 else
12 imgreader->SetFileNames(names);
13 imgreader->Update();
14diff --git a/Utilities/VTK/Applications/gdcmviewer.cxx b/Utilities/VTK/Applications/gdcmviewer.cxx
15index 3ed4778f8..58236a6a5 100644
16--- a/Utilities/VTK/Applications/gdcmviewer.cxx
17+++ b/Utilities/VTK/Applications/gdcmviewer.cxx
18@@ -321,7 +321,7 @@ void ExecuteViewer(TViewer *viewer, vtkStringArray *filenames)
19 vtkGDCMImageReader *reader = vtkGDCMImageReader::New();
20 if( filenames->GetSize() == 1 ) // Backward compatible...
21 {
22- reader->SetFileName( filenames->GetValue(0) );
23+ reader->SetFileName( filenames->GetValue(0).c_str() );
24 }
25 else
26 {
27diff --git a/Utilities/VTK/Testing/Cxx/TestvtkGDCMImageWriter2.cxx b/Utilities/VTK/Testing/Cxx/TestvtkGDCMImageWriter2.cxx
28index fa1d7d895..00d9f3845 100644
29--- a/Utilities/VTK/Testing/Cxx/TestvtkGDCMImageWriter2.cxx
30+++ b/Utilities/VTK/Testing/Cxx/TestvtkGDCMImageWriter2.cxx
31@@ -113,7 +113,7 @@ int TestvtkGDCMImageWrite2(const char *filename, bool verbose = false)
32 // Need to check we can still read those files back:
33 for(int file=0; file<filenames->GetNumberOfValues(); ++file)
34 {
35- const char *fname = filenames->GetValue(file);
36+ const char *fname = filenames->GetValue(file).c_str();
37 gdcm::ImageReader r;
38 //r.SetFileName( gdcmfile.c_str() );
39 r.SetFileName( fname );
40diff --git a/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader.cxx b/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader.cxx
41index 8b253ec83..1c83ed417 100644
42--- a/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader.cxx
43+++ b/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader.cxx
44@@ -170,7 +170,7 @@ int TestvtkGDCMThreadedImageRead(const char *filename, bool verbose = false)
45 assert( sarray->GetNumberOfValues() == (int)nfiles );
46 reader->SetFileNames( sarray );
47 sarray->Delete();
48- refimage = sarray->GetValue( 0 ); // Ok since sarray is ref count
49+ refimage = sarray->GetValue( 0 ).c_str(); // Ok since sarray is ref count
50 }
51 else
52 {
53diff --git a/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader2.cxx b/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader2.cxx
54index 5151893e8..22dd4fd57 100644
55--- a/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader2.cxx
56+++ b/Utilities/VTK/Testing/Cxx/TestvtkGDCMThreadedImageReader2.cxx
57@@ -160,7 +160,7 @@ int TestvtkGDCMThreadedImageRead2(const char *filename, bool verbose = false)
58 assert( sarray->GetNumberOfValues() == (int)nfiles );
59 reader->SetFileNames( sarray );
60 sarray->Delete();
61- refimage = sarray->GetValue( 0 ); // Ok since sarray is ref count
62+ refimage = sarray->GetValue( 0 ).c_str(); // Ok since sarray is ref count
63 }
64 else
65 {
66diff --git a/Utilities/VTK/vtkGDCMImageReader.cxx b/Utilities/VTK/vtkGDCMImageReader.cxx
67index c62034300..463c3879b 100644
68--- a/Utilities/VTK/vtkGDCMImageReader.cxx
69+++ b/Utilities/VTK/vtkGDCMImageReader.cxx
70@@ -608,7 +608,7 @@ ComputePixelTypeFromFiles(const char *inputfilename, vtkStringArray *filenames,
71 // FIXME a gdcm::Scanner would be much faster here:
72 for(int i = 0; i < filenames->GetNumberOfValues(); ++i )
73 {
74- const char *filename = filenames->GetValue( i );
75+ const char *filename = filenames->GetValue( i ).c_str();
76 gdcm::ImageReader reader;
77 reader.SetFileName( filename );
78 if( !reader.Read() )
79@@ -703,7 +703,7 @@ int vtkGDCMImageReader::RequestInformationCompat()
80 }
81 else if ( this->FileNames && this->FileNames->GetNumberOfValues() > 0 )
82 {
83- filename = this->FileNames->GetValue( 0 );
84+ filename = this->FileNames->GetValue( 0 ).c_str();
85 }
86 else
87 {
88@@ -1459,7 +1459,7 @@ int vtkGDCMImageReader::RequestDataCompat()
89 for(int j = dext[4]; !this->AbortExecute && j <= dext[5]; ++j)
90 {
91 assert( j >= 0 && j <= this->FileNames->GetNumberOfValues() );
92- const char *filename = this->FileNames->GetValue( j );
93+ const char *filename = this->FileNames->GetValue( j ).c_str();
94 int load = this->LoadSingleFile( filename, pointer, len );
95 if( !load )
96 {
97diff --git a/Utilities/VTK/vtkGDCMImageReader2.cxx b/Utilities/VTK/vtkGDCMImageReader2.cxx
98index 266c1270a..4976f0190 100644
99--- a/Utilities/VTK/vtkGDCMImageReader2.cxx
100+++ b/Utilities/VTK/vtkGDCMImageReader2.cxx
101@@ -388,7 +388,7 @@ ComputePixelTypeFromFiles(const char *inputfilename, vtkStringArray *filenames,
102 // FIXME a gdcm::Scanner would be much faster here:
103 for(int i = 0; i < filenames->GetNumberOfValues(); ++i )
104 {
105- const char *filename = filenames->GetValue( i );
106+ const char *filename = filenames->GetValue( i ).c_str();
107 gdcm::ImageReader reader;
108 reader.SetFileName( filename );
109 if( !reader.Read() )
110@@ -480,7 +480,7 @@ int vtkGDCMImageReader2::RequestInformationCompat()
111 }
112 else if ( this->FileNames && this->FileNames->GetNumberOfValues() > 0 )
113 {
114- filename = this->FileNames->GetValue( 0 );
115+ filename = this->FileNames->GetValue( 0 ).c_str();
116 }
117 else
118 {
119@@ -1177,7 +1177,7 @@ int vtkGDCMImageReader2::RequestDataCompat()
120 for(int j = outExt[4]; !this->AbortExecute && j <= outExt[5]; ++j)
121 {
122 assert( j >= 0 && j <= this->FileNames->GetNumberOfValues() );
123- const char *filename = this->FileNames->GetValue( j );
124+ const char *filename = this->FileNames->GetValue( j ).c_str();
125 int load = this->LoadSingleFile( filename, pointer, len );
126 vtkDebugMacro( "LoadSingleFile: " << filename );
127 if( !load )
128diff --git a/Utilities/VTK/vtkGDCMImageWriter.cxx b/Utilities/VTK/vtkGDCMImageWriter.cxx
129index 37e1245a5..e723d15b7 100644
130--- a/Utilities/VTK/vtkGDCMImageWriter.cxx
131+++ b/Utilities/VTK/vtkGDCMImageWriter.cxx
132@@ -255,7 +255,7 @@ int vtkGDCMImageWriter::RequestData(
133 {
134 if( this->FileNames->GetNumberOfValues() )
135 {
136- const char *filename = this->FileNames->GetValue(0);
137+ const char *filename = this->FileNames->GetValue(0).c_str();
138 return const_cast<char*>(filename);
139 }
140 return this->Superclass::GetFileName();
141@@ -1148,7 +1148,7 @@ int vtkGDCMImageWriter::WriteGDCMData(vtkImageData *data, int timeStep)
142 if( this->FileNames->GetNumberOfValues() )
143 {
144 //int n = this->FileNames->GetNumberOfValues();
145- filename = this->FileNames->GetValue(k);
146+ filename = this->FileNames->GetValue(k).c_str();
147 }
148 else
149 {
150diff --git a/Utilities/VTK/vtkGDCMThreadedImageReader.cxx b/Utilities/VTK/vtkGDCMThreadedImageReader.cxx
151index d50a3fee2..c531b8854 100644
152--- a/Utilities/VTK/vtkGDCMThreadedImageReader.cxx
153+++ b/Utilities/VTK/vtkGDCMThreadedImageReader.cxx
154@@ -592,7 +592,7 @@ void vtkGDCMThreadedImageReader::RequestDataCompat()
155 const char **filenames = new const char* [ nfiles ];
156 for(unsigned int i = 0; i < nfiles; ++i)
157 {
158- filenames[i] = this->FileNames->GetValue( i );
159+ filenames[i] = this->FileNames->GetValue( i ).c_str();
160 //std::cerr << filenames[i] << std::endl;
161 }
162 ReadFiles((unsigned int)nfiles, filenames);
163diff --git a/Utilities/VTK/vtkGDCMThreadedImageReader2.cxx b/Utilities/VTK/vtkGDCMThreadedImageReader2.cxx
164index 2e6a2e932..72ce6453c 100644
165--- a/Utilities/VTK/vtkGDCMThreadedImageReader2.cxx
166+++ b/Utilities/VTK/vtkGDCMThreadedImageReader2.cxx
167@@ -71,7 +71,7 @@ vtkGDCMThreadedImageReader2::~vtkGDCMThreadedImageReader2()
168 //----------------------------------------------------------------------------
169 const char *vtkGDCMThreadedImageReader2::GetFileName(int i)
170 {
171- return this->FileNames->GetValue( i );
172+ return this->FileNames->GetValue( i ).c_str();
173 }
174
175 //----------------------------------------------------------------------------
176@@ -106,7 +106,7 @@ void vtkGDCMThreadedImageReader2Execute(vtkGDCMThreadedImageReader2 *self,
177 for( int i = outExt[4]; i <= outExt[5] && i < maxfiles; ++i )
178 {
179 assert( i < maxfiles );
180- const char *filename = self->GetFileNames()->GetValue( i );
181+ const char *filename = self->GetFileNames()->GetValue( i ).c_str();
182 //ReadOneFile( filename );
183 //outData->GetPointData()->GetScalars()->SetName("GDCMImage");
184