diff --git a/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp b/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp
index f814475c27fa8849f484e990b11c252fccb4f3ff..8fb0f6eeb7ba65d5eefc9f509be4d4649bf4a448 100644
--- a/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp
+++ b/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.cpp
@@ -71,7 +71,7 @@ bool MicrophoneArrayCoProcessor::addMicrophone(Vector3D coords)
                mic->nodeIndexes = grid->getNodeIndexes(block, coords[0], coords[1], coords[2]);
                microphones.push_back(mic);
 
-               strVector.push_back(new std::stringstream);
+               strVector.push_back(SPtr<std::stringstream>(new std::stringstream));
 
                std::string fname = path+"/mic/mic_"+UbSystem::toString(micID)+".csv";
                std::ofstream ostr;
@@ -121,5 +121,6 @@ void MicrophoneArrayCoProcessor::writeFile(double step)
       }
       ostr << strVector[i]->str();
       ostr.close();
+      strVector[i] = SPtr<std::stringstream>(new std::stringstream);
    }
 }
\ No newline at end of file
diff --git a/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h b/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h
index e8a884d784b58fadf30d39bab2748394bef488d5..b3f5edbc8f32271e3c70a17918a1952914bb940a 100644
--- a/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h
+++ b/source/VirtualFluidsCore/CoProcessors/MicrophoneArrayCoProcessor.h
@@ -45,7 +45,7 @@ private:
    };
    std::vector< SPtr<Mic> > microphones;
 
-   std::vector<std::stringstream* > strVector;
+   std::vector< SPtr<std::stringstream> > strVector;
 
    int count;
    int micID;