diff --git a/src/main/php/pattern/LoggerPatternConverterCookie.php b/src/main/php/pattern/LoggerPatternConverterCookie.php
index 6b0e221..2118193 100644
--- a/src/main/php/pattern/LoggerPatternConverterCookie.php
+++ b/src/main/php/pattern/LoggerPatternConverterCookie.php
@@ -30,5 +30,7 @@
  * @since 2.3
  */
 class LoggerPatternConverterCookie extends LoggerPatternConverterSuperglobal {
-	protected $name = '_COOKIE';
-}
\ No newline at end of file
+	protected function getSource() {
+		return $_COOKIE;
+	}
+}
diff --git a/src/main/php/pattern/LoggerPatternConverterEnvironment.php b/src/main/php/pattern/LoggerPatternConverterEnvironment.php
index 3096b20..0b3aabe 100644
--- a/src/main/php/pattern/LoggerPatternConverterEnvironment.php
+++ b/src/main/php/pattern/LoggerPatternConverterEnvironment.php
@@ -30,5 +30,7 @@
  * @since 2.3
  */
 class LoggerPatternConverterEnvironment extends LoggerPatternConverterSuperglobal {
-	protected $name = '_ENV';
+	protected function getSource() {
+		return $_ENV;
+	}
 }
diff --git a/src/main/php/pattern/LoggerPatternConverterRequest.php b/src/main/php/pattern/LoggerPatternConverterRequest.php
index ac45e6b..939805a 100644
--- a/src/main/php/pattern/LoggerPatternConverterRequest.php
+++ b/src/main/php/pattern/LoggerPatternConverterRequest.php
@@ -30,5 +30,7 @@
  * @since 2.3
  */
 class LoggerPatternConverterRequest extends LoggerPatternConverterSuperglobal {
-	protected $name = '_REQUEST';
-}
\ No newline at end of file
+	protected function getSource() {
+		return $_REQUEST;
+	}
+}
diff --git a/src/main/php/pattern/LoggerPatternConverterServer.php b/src/main/php/pattern/LoggerPatternConverterServer.php
index 27a983d..636f848 100644
--- a/src/main/php/pattern/LoggerPatternConverterServer.php
+++ b/src/main/php/pattern/LoggerPatternConverterServer.php
@@ -30,5 +30,7 @@
  * @since 2.3
  */
 class LoggerPatternConverterServer extends LoggerPatternConverterSuperglobal {
-	protected $name = '_SERVER';
+	protected function getSource() {
+		return $_SERVER;
+	}
 }
diff --git a/src/main/php/pattern/LoggerPatternConverterSession.php b/src/main/php/pattern/LoggerPatternConverterSession.php
index a73e27a..8f572c7 100644
--- a/src/main/php/pattern/LoggerPatternConverterSession.php
+++ b/src/main/php/pattern/LoggerPatternConverterSession.php
@@ -30,5 +30,7 @@
  * @since 2.3
  */
 class LoggerPatternConverterSession extends LoggerPatternConverterSuperglobal {
-	protected $name = '_SESSION';
+	protected function getSource() {
+		return $_SESSION;
+	}
 }
diff --git a/src/main/php/pattern/LoggerPatternConverterSuperglobal.php b/src/main/php/pattern/LoggerPatternConverterSuperglobal.php
index f1164d3..dbabeca 100644
--- a/src/main/php/pattern/LoggerPatternConverterSuperglobal.php
+++ b/src/main/php/pattern/LoggerPatternConverterSuperglobal.php
@@ -36,12 +36,6 @@
  * @since 2.3
  */
 abstract class LoggerPatternConverterSuperglobal extends LoggerPatternConverter {
-
-	/** 
-	 * Name of the superglobal variable, to be defined by subclasses. 
-	 * For example: "_SERVER" or "_ENV". 
-	 */
-	protected $name;
 	
 	protected $value = '';
 	
@@ -50,33 +44,8 @@
 		if (isset($this->option) && $this->option !== '') {
 			$key = $this->option;
 		}
-	
-		/*
-		 * There is a bug in PHP which doesn't allow superglobals to be 
-		 * accessed when their name is stored in a variable, e.g.:
-		 * 
-		 * $name = '_SERVER';
-		 * $array = $$name;
-		 * 
-		 * This code does not work when run from within a method (only when run
-		 * in global scope). But the following code does work: 
-		 * 
-		 * $name = '_SERVER';
-		 * global $$name;
-		 * $array = $$name;
-		 * 
-		 * That's why global is used here.
-		 */
-		global ${$this->name};
-			
-		// Check the given superglobal exists. It is possible that it is not initialized.
-		if (!isset(${$this->name})) {
-			$class = get_class($this);
-			trigger_error("log4php: $class: Cannot find superglobal variable \${$this->name}.", E_USER_WARNING);
-			return;
-		}
-		
-		$source = ${$this->name};
+
+		$source = $this->getSource();
 		
 		// When the key is set, display the matching value
 		if (isset($key)) {
diff --git a/src/test/php/pattern/LoggerPatternConverterTest.php b/src/test/php/pattern/LoggerPatternConverterTest.php
index 704930e..ec09edd 100644
--- a/src/test/php/pattern/LoggerPatternConverterTest.php
+++ b/src/test/php/pattern/LoggerPatternConverterTest.php
@@ -22,11 +22,6 @@
  * @link       http://logging.apache.org/log4php
  */
 
-/** Converter referencing non-existant superglobal variable. */
-class LoggerInvalidSuperglobalConverter extends LoggerPatternConverterSuperglobal {
-	protected $name = '_FOO';
-}
-
 /**
  * @group pattern
  */
@@ -305,15 +300,6 @@
 		self::assertSame($expected, $actual);
 	}
 
-	/**
-	 * @expectedException PHPUnit_Framework_Error
-	 * @expectedExceptionMessage log4php: LoggerInvalidSuperglobalConverter: Cannot find superglobal variable $_FOO
-	 */
-	public function testNonexistantSuperglobal() {
-		$converter = new LoggerInvalidSuperglobalConverter($this->info);
-		$actual = $converter->convert($this->event);
-	}
-
 	public function testFormattingTrimRight() {
 		$event = LoggerTestHelper::getInfoEvent('0123456789');
 
