diff --git a/OpenMetaverse/AppearanceManager.cs b/OpenMetaverse/AppearanceManager.cs
index 89f3b0a2..330f7bab 100644
--- a/OpenMetaverse/AppearanceManager.cs
+++ b/OpenMetaverse/AppearanceManager.cs
@@ -278,7 +278,11 @@ namespace OpenMetaverse
///
/// Timer used for delaying rebake on changing outfit
///
- Timer RebakeScheduleTimer;
+ private Timer RebakeScheduleTimer;
+ ///
+ /// Main appearance thread
+ ///
+ private Thread AppearanceThread;
#endregion Private Members
///
@@ -346,7 +350,7 @@ namespace OpenMetaverse
}
// This is the first time setting appearance, run through the entire sequence
- Thread appearanceThread = new Thread(
+ AppearanceThread = new Thread(
delegate()
{
bool success = true;
@@ -417,9 +421,9 @@ namespace OpenMetaverse
}
}
);
- appearanceThread.Name = "Appearance";
- appearanceThread.IsBackground = true;
- appearanceThread.Start();
+ AppearanceThread.Name = "Appearance";
+ AppearanceThread.IsBackground = true;
+ AppearanceThread.Start();
}
///
@@ -1903,6 +1907,16 @@ namespace OpenMetaverse
RebakeScheduleTimer.Dispose();
RebakeScheduleTimer = null;
}
+
+ if (AppearanceThread != null)
+ {
+ if (AppearanceThread.IsAlive)
+ {
+ AppearanceThread.Abort();
+ }
+ AppearanceThread = null;
+ AppearanceThreadRunning = 0;
+ }
}
#endregion Callbacks