diff --git a/Nuclex.Support (mono-3.5-unity).csproj b/Nuclex.Support (mono-3.5-unity).csproj
new file mode 100644
index 0000000..1575366
--- /dev/null
+++ b/Nuclex.Support (mono-3.5-unity).csproj
@@ -0,0 +1,263 @@
+
+
+
+ Debug
+ AnyCPU
+ 10.0.0
+ 2.0
+ {F6ED62EA-24D4-4D5D-847A-0F717DA147BD}
+ Library
+ Nuclex.Support
+ Nuclex.Support
+ v3.5
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;NO_SPECIALIZED_COLLECTIONS;NO_CONCURRENT_COLLECTIONS
+ prompt
+ 4
+ false
+
+
+ none
+ false
+ bin\Release
+ prompt
+ 4
+ false
+ NO_SPECIALIZED_COLLECTIONS;NO_CONCURRENT_COLLECTIONS
+
+
+
+
+
+
+
+
+
+
+
+
+ ReflectionCloner.cs
+
+
+
+
+ SerializationCloner.cs
+
+
+
+ Constants.cs
+
+
+
+ Deque.cs
+
+
+ Deque.cs
+
+
+ Deque.cs
+
+
+ Deque.cs
+
+
+ Deque.cs
+
+
+
+
+
+
+ ItemEventArgs.cs
+
+
+
+ ItemReplaceEventArgs.cs
+
+
+
+ MultiDictionary.cs
+
+
+ MultiDictionary.cs
+
+
+ MultiDictionary.cs
+
+
+
+ ObservableCollection.cs
+
+
+
+ ObservableDictionary.cs
+
+
+
+ ObservableList.cs
+
+
+
+ PairPriorityQueue.cs
+
+
+
+ Parentable.cs
+
+
+
+ ParentingCollection.cs
+
+
+
+ Pool.cs
+
+
+
+ PriorityItemPair.cs
+
+
+
+ PriorityQueue.cs
+
+
+
+ ReadOnlyCollection.cs
+
+
+
+ ReadOnlyDictionary.cs
+
+
+
+ ReadOnlyList.cs
+
+
+
+ ReverseComparer.cs
+
+
+
+ TransformingReadOnlyCollection.cs
+
+
+ TransformingReadOnlyCollection.cs
+
+
+
+ WeakCollection.cs
+
+
+ WeakCollection.cs
+
+
+
+
+ PartialStream.cs
+
+
+
+ RingMemoryStream.cs
+
+
+
+ ChainStream.cs
+
+
+
+ LicenseKey.cs
+
+
+ CommandLine.cs
+
+
+ CommandLine.cs
+
+
+ CommandLine.cs
+
+
+
+ CommandLine.cs
+
+
+
+ PropertyChangedEventArgsHelper.cs
+
+
+
+ AffineThreadPool.cs
+
+
+
+ EnumHelper.cs
+
+
+
+ Observable.cs
+
+
+
+ ObservableHelper.cs
+
+
+
+ TypeHelper.cs
+
+
+
+ Semaphore.cs
+
+
+
+ FloatHelper.cs
+
+
+
+ IntegerHelper.cs
+
+
+
+ PathHelper.cs
+
+
+
+ Shared.cs
+
+
+
+ StringBuilderHelper.cs
+
+
+
+ StringHelper.cs
+
+
+
+ StringSegment.cs
+
+
+
+ WeakReference.cs
+
+
+ WeakReference.cs
+
+
+
+ XmlHelper.cs
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index 739d472..8eab9ef 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -21,7 +21,7 @@ using System.Runtime.InteropServices;
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1308e4c3-a0c1-423a-aaae-61c7314777e0")]
-#if !(WINDOWS_PHONE || XBOX360)
+#if !(WINDOWS_PHONE || XBOX360) && UNITTEST
// This is required to NMock can derive its proxies from interfaces in
// the internal unit test classes
[assembly: InternalsVisibleTo(NMock.Constants.InternalsVisibleToDynamicProxy)]
diff --git a/Source/StringBuilderHelper.cs b/Source/StringBuilderHelper.cs
index c0a34db..0ecfd99 100644
--- a/Source/StringBuilderHelper.cs
+++ b/Source/StringBuilderHelper.cs
@@ -332,7 +332,7 @@ namespace Nuclex.Support {
/// String builder the number will be appended to
/// Remaining digits that will be recursively processed
private static void recursiveAppend(StringBuilder builder, int remaining) {
-#if WINDOWS
+#if !(XBOX360 || WINDOWS_PHONE)
int digit;
int tenth = Math.DivRem(remaining, 10, out digit);
#else
@@ -351,7 +351,7 @@ namespace Nuclex.Support {
/// String builder the number will be appended to
/// Remaining digits that will be recursively processed
private static void recursiveAppend(StringBuilder builder, long remaining) {
-#if WINDOWS
+#if !(XBOX360 || WINDOWS_PHONE)
long digit;
long tenth = Math.DivRem(remaining, 10, out digit);
#else