diff --git a/src/VrmlData/VrmlData_ImageTexture.hxx b/src/VrmlData/VrmlData_ImageTexture.hxx
index 7f594108f9..88c98948f1 100644
--- a/src/VrmlData/VrmlData_ImageTexture.hxx
+++ b/src/VrmlData/VrmlData_ImageTexture.hxx
@@ -63,6 +63,12 @@ class VrmlData_ImageTexture : public VrmlData_Texture
   Standard_EXPORT virtual VrmlData_ErrorStatus
                         Read    (VrmlData_InBuffer& theBuffer);
 
+  /**
+   * Write the Node to output stream.
+   */
+  Standard_EXPORT virtual VrmlData_ErrorStatus
+                        Write   (const char * thePrefix) const;
+
  protected:
   // ---------- PROTECTED METHODS ----------
 
diff --git a/src/VrmlData/VrmlData_Node.cxx b/src/VrmlData/VrmlData_Node.cxx
index 54b4cfd27d..115af13559 100644
--- a/src/VrmlData/VrmlData_Node.cxx
+++ b/src/VrmlData/VrmlData_Node.cxx
@@ -32,19 +32,6 @@
 #pragma warning (disable:4996)
 #endif
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 static VrmlData_Scene MyDefaultScene;
 
 //=======================================================================
@@ -575,12 +562,10 @@ Standard_Boolean VrmlData_Appearance::IsDefault () const
   Standard_Boolean aResult (Standard_True);
   if (myMaterial.IsNull() == Standard_False)
     aResult = myMaterial->IsDefault();
-  if (aResult == Standard_False)
-    if (myTexture.IsNull() == Standard_False)
-      aResult = myTexture->IsDefault();
-  if (aResult == Standard_False)
-    if (myTTransform.IsNull() == Standard_False)
-      aResult = myTTransform->IsDefault();
+  if (aResult && myTexture.IsNull() == Standard_False)
+    aResult = myTexture->IsDefault();
+  if (aResult && myTTransform.IsNull() == Standard_False)
+    aResult = myTTransform->IsDefault();
   return aResult;
 }
 
@@ -648,3 +633,31 @@ VrmlData_ErrorStatus VrmlData_ImageTexture::Read (VrmlData_InBuffer& theBuffer)
   return aStatus;
 }
 
+//=======================================================================
+//function : Write
+//purpose  : 
+//=======================================================================
+
+VrmlData_ErrorStatus VrmlData_ImageTexture::Write(const char *thePrefix)  const
+{
+  VrmlData_ErrorStatus aStatus = VrmlData_StatusOK;
+  const VrmlData_Scene& aScene = Scene();
+  static char header[] = "ImageTexture {";
+  if (aScene.IsDummyWrite() == Standard_False &&
+      OK(aStatus, aScene.WriteLine(thePrefix, header, GlobalIndent())))
+  {
+    TCollection_AsciiString url = "\"";
+    url += URL().First();
+    url += "\"";
+
+    try {
+      aStatus = aScene.WriteLine("url ", url.ToCString());
+    }
+    catch (...)
+    {
+      
+    }
+    aStatus = WriteClosing();
+  }
+  return aStatus;
+}