diff --git a/athenasub/src/text_reader_cache.cpp b/athenasub/src/text_reader_cache.cpp
index e6e37caf187dbb118f70d96e52f8abe1b20197d5..99dc79ef5ee32d76f8fc7dbf39ea874e1bb40df6 100644
--- a/athenasub/src/text_reader_cache.cpp
+++ b/athenasub/src/text_reader_cache.cpp
@@ -48,7 +48,7 @@ Athenasub::TextReaderCache::TextReaderCache(shared_ptr<TextReader> src)
 String TextReaderCache::ReadLineFromFile()
 {
 	if (bufferPos == buffer.size()) {
-		LoadMore(10);
+		LoadMore(1);
 	}
 	if (bufferPos == buffer.size()) {
 		return "";
diff --git a/athenasub/test/src/main.cpp b/athenasub/test/src/main.cpp
index 285b2ec52ba4ec6cb4c51ada3930af47143b622a..b7c8275cfaf5005ba4000a6d3c69c4fbb2d6fc39 100644
--- a/athenasub/test/src/main.cpp
+++ b/athenasub/test/src/main.cpp
@@ -94,7 +94,7 @@ int main()
 #ifdef WXDEBUG
 		int n = 1;
 #else
-		int n = 1000;
+		int n = 100;
 #endif
 		cout << "Executing action " << n << " times... ";
 		timer.Start();
diff --git a/unit_test/src/athenasub/test_file.cpp b/unit_test/src/athenasub/test_file.cpp
index 64f386f16bb83bca1fcb0e2f1ed0b66fe8ad1683..8e92f02975f9711b977277261ede08f9b7bbe91e 100644
--- a/unit_test/src/athenasub/test_file.cpp
+++ b/unit_test/src/athenasub/test_file.cpp
@@ -79,24 +79,34 @@ public:
 	void testLoad()
 	{
 		CPPUNIT_ASSERT_NO_THROW(controller->LoadFile(fileFolder+"in_test1.ass","UTF-8"));
-		ConstModel csubs = subs;
-		CPPUNIT_ASSERT(csubs->GetSectionCount() == 3);
+		CPPUNIT_ASSERT(subs->GetSectionCount() == 3);
 		ConstSection section;
-		CPPUNIT_ASSERT_NO_THROW(section = csubs->GetSection("Script Info"));
+		CPPUNIT_ASSERT_NO_THROW(section = subs->GetSection("Script Info"));
 		CPPUNIT_ASSERT(section->HasProperty("ScriptType"));
 		CPPUNIT_ASSERT(section->GetProperty("ScriptType") == "v4.00+");
+		CPPUNIT_ASSERT_NO_THROW(section = subs->GetSection("V4+ Styles"));
+		CPPUNIT_ASSERT(section->GetEntryCount() == 7);
+		CPPUNIT_ASSERT_NO_THROW(section = subs->GetSection("Events"));
+		CPPUNIT_ASSERT(section->GetEntryCount() == 362);
 	}
 
 	void testSave()
 	{
 		CPPUNIT_ASSERT_NO_THROW(controller->LoadFile(fileFolder+"in_test1.ass","UTF-8"));
 		CPPUNIT_ASSERT_NO_THROW(controller->SaveFile(fileFolder+"out_test1.ass","UTF-8"));
+
+		CPPUNIT_ASSERT_NO_THROW(controller->LoadFile(fileFolder+"out_test1.ass","UTF-8"));
+		CPPUNIT_ASSERT(subs->GetSectionCount() == 3);
+		ConstSection section;
+		CPPUNIT_ASSERT_NO_THROW(section = subs->GetSection("V4+ Styles"));
+		CPPUNIT_ASSERT(section->GetEntryCount() == 7);
+		CPPUNIT_ASSERT_NO_THROW(section = subs->GetSection("Events"));
+		CPPUNIT_ASSERT(section->GetEntryCount() == 362);
 	}
 
 	void testStableRewrite()
 	{
 		CPPUNIT_ASSERT_NO_THROW(controller->LoadFile(fileFolder+"out_test1.ass","UTF-8"));
-		CPPUNIT_ASSERT(subs->GetSectionCount() == 3);
 		CPPUNIT_ASSERT_NO_THROW(controller->SaveFile(fileFolder+"out_test2.ass","UTF-8"));
 		CPPUNIT_ASSERT(AreFilesIdentical(fileFolder+"out_test1.ass",fileFolder+"out_test2.ass"));
 		CPPUNIT_ASSERT(AreFilesIdentical(fileFolder+"in_test1.ass",fileFolder+"out_test1.ass") == false);