Index: Unity/Editor/NoesisPostprocessor.cs
===================================================================
--- Unity/Editor/NoesisPostprocessor.cs	(revision 10931)
+++ Unity/Editor/NoesisPostprocessor.cs	(revision 10932)
@@ -10,6 +10,8 @@
 
 public class NoesisPostprocessor : AssetPostprocessor
 {
+    private static HashSet<string> _pendingXamls = new HashSet<string>();
+
     private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
     {
         string[] assets = importedAssets.Concat(movedAssets).ToArray();
@@ -16,7 +18,7 @@
 
         foreach (var asset in assets)
         {
-            if (IsXaml(asset))
+            if (IsXaml(asset) && !_pendingXamls.Contains(asset))
             {
                 EditorApplication.CallbackFunction d = null;
 
@@ -25,6 +27,7 @@
                 {
                     if (!EditorApplication.isCompiling && !EditorApplication.isUpdating)
                     {
+                        _pendingXamls.Remove(asset);
                         EditorApplication.update -= d;
 
                         try
@@ -54,6 +57,7 @@
                     }
                 };
 
+                _pendingXamls.Add(asset);
                 EditorApplication.update += d;
             }
         }
Index: Unity/Editor/NoesisUpdater.cs
===================================================================
--- Unity/Editor/NoesisUpdater.cs	(revision 10931)
+++ Unity/Editor/NoesisUpdater.cs	(revision 10932)
@@ -67,7 +67,10 @@
             AssetDatabase.DeleteAsset(Path.ChangeExtension(asset, ".asset"));
 
             // Reimport asset to assign proper importer
-            AssetDatabase.ImportAsset(asset);
+            if (AssetDatabase.GetImporterOverride(asset) == null)
+            {
+                AssetDatabase.ImportAsset(asset);
+            }
         }
     }
 
