diff -Nru trem901-original-wraths-tmp2/src/game/g_admin.c trem901-original-wraths-tmp/src/game/g_admin.c
--- trem901-original-wraths-tmp2/src/game/g_admin.c	2007-08-18 06:51:30.000000000 +0200
+++ trem901-original-wraths-tmp/src/game/g_admin.c	2007-08-18 06:52:54.000000000 +0200
@@ -134,6 +134,11 @@
       "reloads the admin config file and refreshes permission flags",
       ""
     },
+    
+    {"register", G_admin_register, "R",
+      "Registers your name to protect it from being used by others or updates your admin name to your current name.",
+      ""
+    },
 
     {"rename", G_admin_rename, "N",
       "rename a player",
@@ -2703,6 +2708,28 @@
   return qtrue;
 }
 
+qboolean G_admin_register(gentity_t *ent, int skiparg ){
+  int level = 0;
+
+  level = G_admin_level(ent);
+	
+  if( level == 0 )
+   level = 1;
+  
+  if( !Q_stricmp( ent->client->pers.guid, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ) )
+  {
+    ADMP( va( "^3!register: ^7 You cannot register for name protection until you update your client. Please replace your client executable with the one at http://trem.tjw.org/backport/ and reconnect. Updating your client will also allow you to have faster map downloads.\n" ) );
+    return qfalse;
+  }
+
+  trap_SendConsoleCommand( EXEC_APPEND,va( "!setlevel %d %d;",ent - g_entities, level) );
+  ClientUserinfoChanged( ent - g_entities );
+  
+  AP( va( "print \"^3!register: ^7%s^7 is now a protected nickname.\n\"", ent->client->pers.netname) );
+  
+  return qtrue;
+}
+
 qboolean G_admin_rename( gentity_t *ent, int skiparg )
 {
   int pids[ MAX_CLIENTS ];
diff -Nru trem901-original-wraths-tmp2/src/game/g_admin.h trem901-original-wraths-tmp/src/game/g_admin.h
--- trem901-original-wraths-tmp2/src/game/g_admin.h	2007-08-18 06:51:30.000000000 +0200
+++ trem901-original-wraths-tmp/src/game/g_admin.h	2007-08-18 06:53:14.000000000 +0200
@@ -164,6 +164,7 @@
 qboolean G_admin_cancelvote( gentity_t *ent, int skiparg );
 qboolean G_admin_passvote( gentity_t *ent, int skiparg );
 qboolean G_admin_spec999( gentity_t *ent, int skiparg );
+qboolean G_admin_register( gentity_t *ent, int skiparg );
 qboolean G_admin_rename( gentity_t *ent, int skiparg );
 qboolean G_admin_restart( gentity_t *ent, int skiparg );
 qboolean G_admin_nextmap( gentity_t *ent, int skiparg );
