This is a little diff to work around gcc and the enum/namespace issue.  Apparently from what I've found online gcc doesn't like the namespace identifier in its enums, so you must declare a variable, set it, then compare with that.
If anyone else has a better way to fix this please speak up!
	Code:
	Index: Client.cpp
===================================================================
--- Client.cpp  (revision 1918)
+++ Client.cpp  (working copy)
@@ -127,7 +127,8 @@
        }
        unsigned int mode = *((unsigned int*)data);
-       if(mode == (unsigned int)LoginMode::lm_from_world)
+       LoginMode myMode = lm_from_world;
+       if(mode == (unsigned int)myMode)
        {
                server_log->Log(log_network, "Session ready indicated logged in from world(unsupported feature), disconnecting.");
                connection->Close();
 -ork