diff -urN ../JavaFSAdaptor/Resources/FS.eomodeld/FSFile.plist JavaFSAdaptor/Resources/FS.eomodeld/FSFile.plist
--- ../JavaFSAdaptor/Resources/FS.eomodeld/FSFile.plist	2009-05-21 11:31:09.000000000 -0700
+++ JavaFSAdaptor/Resources/FS.eomodeld/FSFile.plist	2009-05-21 11:29:15.000000000 -0700
@@ -46,11 +46,10 @@
             columnName = content; 
             externalType = String; 
             internalInfo = {"_nameInObjectStore" = ""; }; 
-            isReadOnly = Y; 
+            isReadOnly = N; 
             name = content; 
-            serverTimeZone = "Europe/Zurich"; 
             userInfo = {modificationDate = "2002-08-08 09:51:33 +0200"; }; 
-            valueClassName = NSString; 
+            valueClassName = NSData; 
         }, 
         {
             allowsNull = Y; 
@@ -178,7 +177,6 @@
         url, 
         parent, 
         isAbsolute, 
-        parent, 
         content
     ); 
     externalName = FSFile; 
diff -urN ../JavaFSAdaptor/Sources/er/fsadaptor/FSAdaptorChannel.java JavaFSAdaptor/Sources/er/fsadaptor/FSAdaptorChannel.java
--- ../JavaFSAdaptor/Sources/er/fsadaptor/FSAdaptorChannel.java	2009-05-21 11:30:46.000000000 -0700
+++ JavaFSAdaptor/Sources/er/fsadaptor/FSAdaptorChannel.java	2009-05-21 11:27:54.000000000 -0700
@@ -6,8 +6,10 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URL;
 
 import com.webobjects.eoaccess.EOAdaptorChannel;
@@ -22,6 +24,7 @@
 import com.webobjects.eocontrol.EOQualifier;
 import com.webobjects.eocontrol.EOSortOrdering;
 import com.webobjects.foundation.NSArray;
+import com.webobjects.foundation.NSData;
 import com.webobjects.foundation.NSDictionary;
 import com.webobjects.foundation.NSKeyValueCoding;
 import com.webobjects.foundation.NSMutableArray;
@@ -116,9 +119,46 @@
                             aFile.mkdirs();
                         else
                             aFile.createNewFile();
+						
                     } catch (Exception anException) {
                         throw new RuntimeException("FSAdaptorChannel.insertRow: " + anException);
                     }
+					NSArray someKeys = aRow.allKeys();
+					int keyCount = someKeys.count();
+					
+					for (int keyIndex = 0; keyIndex < keyCount; keyIndex++) {
+						Object aKey = someKeys.objectAtIndex(keyIndex);
+						EOAttribute anAttribute = anEntity.attributeNamed(aKey.toString());
+						if (anAttribute != null) {
+							Object aValue = aRow.objectForKey(aKey);
+							if ("content".equals(anAttribute.columnName()))
+							{
+								try {
+								
+									OutputStream out = new FileOutputStream(aPath);
+									NSData content = (NSData) aValue;
+									InputStream in = content.stream();
+									
+									if (null == out)
+										throw new RuntimeException("The file '" + aPath + "' can not be opened.");
+									if (null == in)
+										throw new RuntimeException("There is no content to write.");
+									int length = in.available();
+									byte buffer[] = new byte[length];
+									in.read(buffer);
+									out.write(buffer);
+									in.close();
+								} catch (IOException ex) {
+									System.err.println("dictionaryForFileWithAttributes : (" + aFile.getName() + ") " + ex);
+								}
+							}
+							else {
+								//NSKeyValueCoding.DefaultImplementation.takeValueForKey(aFile, aValue, anAttribute.columnName());
+								//getAbsolutePath is causing an exception on writing here.
+								}
+						}
+					}
+					
                     return;
                 }
                 throw new IllegalArgumentException("FSAdaptorChannel.insertRow: null absolutePath.");
@@ -191,6 +231,7 @@
 
     public int updateValuesInRowsDescribedByQualifier(NSDictionary aRow, EOQualifier aQualifier, EOEntity anEntity) {
         if (aRow != null) {
+			String aPath = (String) aRow.objectForKey("absolutePath");
             if (aQualifier != null) {
                 if (anEntity != null) {
                     NSArray someFiles = FSQualifierHandler.filesWithQualifier(aQualifier, rootDirectory(anEntity));
@@ -203,13 +244,35 @@
                                 NSArray someKeys = aRow.allKeys();
                                 int keyCount = someKeys.count();
 
-                                for (int keyIndex = 0; keyIndex < count; keyIndex++) {
+                                for (int keyIndex = 0; keyIndex < keyCount; keyIndex++) {
                                     Object aKey = someKeys.objectAtIndex(keyIndex);
                                     EOAttribute anAttribute = anEntity.attributeNamed(aKey.toString());
                                     if (anAttribute != null) {
                                         Object aValue = aRow.objectForKey(aKey);
-
-                                        NSKeyValueCoding.DefaultImplementation.takeValueForKey(aFile, aValue, anAttribute.columnName());
+										if ("content".equals(anAttribute.columnName()))
+										{
+											try {
+												OutputStream out = new FileOutputStream(aPath);
+												NSData content = (NSData) aValue;
+												InputStream in = content.stream();
+												
+												if (null == out)
+													throw new RuntimeException("The file '" + aPath + "' can not be opened.");
+												if (null == in)
+													throw new RuntimeException("There is no content to write.");
+												int length = in.available();
+												byte buffer[] = new byte[length];
+												in.read(buffer);
+												out.write(buffer);
+												in.close();
+											} catch (IOException ex) {
+												System.err.println("dictionaryForFileWithAttributes : (" + aFile.getName() + ") " + ex);
+											}
+										}
+										else {
+											//NSKeyValueCoding.DefaultImplementation.takeValueForKey(aFile, aValue, anAttribute.columnName());
+											//getAbsolutePath is causing an exception on writing here.
+											}
                                     }
                                 }
                             }
@@ -303,7 +366,7 @@
                             byte buffer[] = new byte[length];
                             in.read(buffer);
                             in.close();
-                            aValue = new String(buffer);
+                            aValue = new NSData(buffer);
                         } catch (IOException ex) {
                             System.err.println("dictionaryForFileWithAttributes : (" + aFile.getName() + ") " + ex);
                         }
