=== modified file 'src/mmdb_mmcif.cpp'
--- old/src/mmdb_mmcif.cpp	2010-12-03 14:41:05 +0000
+++ new/mmdb_mmcif.cpp	2010-12-15 12:43:00 +0000
@@ -1753,7 +1753,7 @@ pstr L;
     p = &(S[0]);
     while ((*p==' ') || (*p==char(9)))  p++;
     if (strncmp(p,"data_",5))  {
-      f.ReadLine ( S );
+      f.ReadLine ( S, 10000 );
       lcount++;
       p = NULL;
     }
@@ -1766,7 +1766,7 @@ pstr L;
     return CIFRC_NoDataLine;
   }
 
-  llen = 500;
+  llen = 11000;
   L    = new char[llen];
   i    = 0;
   p   += 5;
@@ -1813,7 +1813,7 @@ pstr L;
 
     if (!(*p))  {
       if (!f.FileEnd())  {
-        f.ReadLine ( S );
+        f.ReadLine ( S, 10000 );
         lcount++;
         p = &(S[0]);
       } else
@@ -1823,6 +1823,7 @@ pstr L;
   }
 
   if (L)  delete[] L;
+  L = 0;
 
   Optimize();  // get rid of over-allocated fields.
 
@@ -2046,7 +2047,7 @@ int         RC,i,nC;
     } else if (!(*p) || (*p=='#'))  {
       Repeat = !f.FileEnd();
       if (Repeat)  {
-        f.ReadLine ( S );
+        f.ReadLine ( S, 10000 );
         lcount++;
         p = &(S[0]);
       } else  {
@@ -2067,7 +2068,7 @@ int         RC,i,nC;
       if (!(*p) || (*p=='#'))  {
         Repeat = !f.FileEnd();
         if (Repeat)  {
-          f.ReadLine ( S );
+          f.ReadLine ( S, 10000 );
           lcount++;
           p = &(S[0]);
         }
@@ -2118,7 +2119,7 @@ char    c;
       Repeat = !f.FileEnd();
       if (Repeat)  {
         // take the next line
-        f.ReadLine ( S );
+        f.ReadLine ( S, 10000 );
         lcount++;
         p = &(S[0]);
         Repeat = (*p!=';');
@@ -2139,7 +2140,7 @@ char    c;
     strcpy ( L,p );    // take first line of the field
     flen = strlen(L);
     while (!f.FileEnd())  {
-      f.ReadLine ( S );
+      f.ReadLine ( S, 10000 );
       lcount++;
       p = &(S[0]);
       if (*p==';')  {  // multiline field terminated

