diff --git a/core/Controller.php b/core/Controller.php
index 7837bdd4cab45b2c42934a4101a999527120aa83..cebbc105a2ab17912fb20ebf4b57a6602488ad44 100644
--- a/core/Controller.php
+++ b/core/Controller.php
@@ -20,9 +20,9 @@ use Piwik\Plugins\API\API;
 use Piwik\Plugins\LanguagesManager\LanguagesManager;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 use Piwik\Plugins\UsersManager\API as APIUsersManager;
+use Piwik\Registry;
 use Piwik\View;
 use Piwik\ViewDataTable;
-use Zend_Registry;
 
 /**
  * Parent class of all plugins Controllers (located in /plugins/PluginName/Controller.php
@@ -611,7 +611,7 @@ abstract class Controller
             && $currentLogin != 'anonymous'
         ) {
             $errorMessage = sprintf(Piwik_Translate('CoreHome_NoPrivilegesAskPiwikAdmin'), $currentLogin, "<br/><a href='mailto:" . Piwik::getSuperUserEmail() . "?subject=Access to Piwik for user $currentLogin'>", "</a>");
-            $errorMessage .= "<br /><br />&nbsp;&nbsp;&nbsp;<b><a href='index.php?module=" . \Zend_Registry::get('auth')->getName() . "&amp;action=logout'>&rsaquo; " . Piwik_Translate('General_Logout') . "</a></b><br />";
+            $errorMessage .= "<br /><br />&nbsp;&nbsp;&nbsp;<b><a href='index.php?module=" . Registry::get('auth')->getName() . "&amp;action=logout'>&rsaquo; " . Piwik_Translate('General_Logout') . "</a></b><br />";
             Piwik_ExitWithMessage($errorMessage, false, true);
         }
 
diff --git a/core/ErrorHandler.php b/core/ErrorHandler.php
index 963d46e3f62cf4c675ca120c720ada62274464d8..8860e6387a5090420244857397b51c648c253183 100644
--- a/core/ErrorHandler.php
+++ b/core/ErrorHandler.php
@@ -47,7 +47,7 @@ function Piwik_ErrorHandler($errno, $errstr, $errfile, $errline)
     }
 
     try {
-        \Zend_Registry::get('logger_error')->logEvent($errno, $errstr, $errfile, $errline, $backtrace);
+        \Piwik\Registry::get('logger_error')->logEvent($errno, $errstr, $errfile, $errline, $backtrace);
     } catch (Exception $e) {
         // in case the error occurs before the logger creation, we simply display it
         print("<pre>$errstr \nin '$errfile' at the line $errline\n\n$backtrace\n</pre>");
diff --git a/core/ExceptionHandler.php b/core/ExceptionHandler.php
index c6d4f1d22bceb535f6359324dc852c98e9dbbfff..71c35fca45c0c8a01b325754c94044307ea2bfab 100644
--- a/core/ExceptionHandler.php
+++ b/core/ExceptionHandler.php
@@ -12,6 +12,7 @@ use Piwik\Piwik;
 use Piwik\Log;
 use Piwik\Log\ExceptionScreenFormatter;
 use Piwik\FrontController;
+use Piwik\Registry;
 
 /**
  * Exception handler used to display nicely exceptions in Piwik
@@ -22,7 +23,7 @@ use Piwik\FrontController;
 function Piwik_ExceptionHandler(Exception $exception)
 {
     try {
-        \Zend_Registry::get('logger_exception')->logEvent($exception);
+        Registry::get('logger_exception')->logEvent($exception);
     } catch (Exception $e) {
 
         if (FrontController::shouldRethrowException()) {
diff --git a/core/FrontController.php b/core/FrontController.php
index 89aaefd9ef406973fbcf49eba34266545e1e50d7..54cc8391da068e28c1abb80d366c1be7862eba90 100644
--- a/core/FrontController.php
+++ b/core/FrontController.php
@@ -14,8 +14,8 @@ use Exception;
 use Piwik\API\Request;
 use Piwik\API\ResponseBuilder;
 use Piwik\Log;
+use Piwik\Registry;
 use Piwik\Session;
-use Zend_Registry;
 
 /**
  * Front controller.
@@ -169,7 +169,7 @@ class FrontController
             if (class_exists('Piwik\\Profiler')) {
                 Profiler::displayDbProfileReport();
                 Profiler::printQueryCount();
-                Piwik::log(Zend_Registry::get('timer'));
+                Piwik::log(Registry::get('timer'));
             }
         } catch (Exception $e) {
         }
@@ -225,7 +225,7 @@ class FrontController
         $initialized = true;
 
         try {
-            \Zend_Registry::set('timer', new Timer);
+            Registry::set('timer', new Timer);
 
             $directoriesToCheck = array(
                 '/tmp/',
@@ -284,7 +284,7 @@ class FrontController
 
             Piwik_PostEvent('FrontController.initAuthenticationObject');
             try {
-                $authAdapter = \Zend_Registry::get('auth');
+                $authAdapter = Registry::get('auth');
             } catch (Exception $e) {
                 throw new Exception("Authentication object cannot be found in the Registry. Maybe the Login plugin is not activated?
                                 <br />You can activate the plugin by adding:<br />
diff --git a/core/Log.php b/core/Log.php
index bb2b624ee3dd8ae8127fbf4b898de9e0264430ce..fe1cc9e8f79222950a4554d13a76f2eb6598150e 100644
--- a/core/Log.php
+++ b/core/Log.php
@@ -14,6 +14,7 @@ use Piwik\Log\APICall;
 use Piwik\Log\Error;
 use Piwik\Log\Exception;
 use Piwik\Log\Message;
+use Piwik\Registry;
 
 /**
  *
@@ -197,7 +198,7 @@ abstract class Log extends \Zend_Log
             if ($logger->getWritersCount() == 0) {
                 $logger->addWriteToNull();
             }
-            \Zend_Registry::set($loggerType, $logger);
+            Registry::set($loggerType, $logger);
         }
     }
 
diff --git a/core/Piwik.php b/core/Piwik.php
index f57d491156c1ecaff7a839899cb651f560c6e5a4..334afbd3732a156d8623772414402fcd848848b2 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -17,10 +17,10 @@ use Piwik\Db;
 use Piwik\Log\ScreenFormatter;
 use Piwik\Plugin;
 use Piwik\Plugins\UsersManager\API;
+use Piwik\Registry;
 use Piwik\Session;
 use Piwik\Tracker;
 use Piwik\View;
-use Zend_Registry;
 
 /**
  * @see core/Translate.php
@@ -73,13 +73,13 @@ class Piwik
             // - Tracker request, and debug disabled,
             // - and some scheduled tasks call code that tries and log something
             try {
-                \Zend_Registry::get('logger_message');
+                Registry::get('logger_message');
             } catch (Exception $e) {
                 self::$shouldLog = false;
             }
         }
         if (self::$shouldLog) {
-            \Zend_Registry::get('logger_message')->logEvent($message);
+            Registry::get('logger_message')->logEvent($message);
         }
     }
 
@@ -457,7 +457,7 @@ class Piwik
      */
     static public function getLoginPluginName()
     {
-        return \Zend_Registry::get('auth')->getName();
+        return Registry::get('auth')->getName();
     }
 
     /**
diff --git a/core/Tracker.php b/core/Tracker.php
index ad1f40e736168be53b85e94164929dbf13327049..3a4c6bd11379c881f0f29a61c8d8daf4227fdfdb 100644
--- a/core/Tracker.php
+++ b/core/Tracker.php
@@ -18,7 +18,6 @@ use Piwik\Tracker\Db\Pdo\Mysql;
 use Piwik\Tracker\Request;
 use Piwik\Tracker\Visit;
 use Piwik\Tracker\VisitInterface;
-use Zend_Registry;
 
 /**
  * Class used by the logging script piwik.php called by the javascript tag.
diff --git a/core/View.php b/core/View.php
index 72395a359814f988c4416f6b63156d86e153720e..50b5761dacb026d3ca1fc05ca33a5fc3a5cca6a3 100644
--- a/core/View.php
+++ b/core/View.php
@@ -11,11 +11,11 @@
 namespace Piwik;
 
 use Exception;
+use Piwik\Registry;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
 use Piwik\Plugins\UsersManager\API as APIUsersManager;
 use Piwik\View\ViewInterface;
 use Twig_Environment;
-use Zend_Registry;
 
 /**
  * Transition for pre-Piwik 0.4.4
@@ -148,7 +148,7 @@ class View implements ViewInterface
         }
 
         try {
-            $this->totalTimeGeneration = \Zend_Registry::get('timer')->getTime();
+            $this->totalTimeGeneration = Registry::get('timer')->getTime();
             $this->totalNumberOfQueries = Profiler::getQueryCount();
         } catch (Exception $e) {
             $this->totalNumberOfQueries = 0;
diff --git a/plugins/LanguagesManager/Controller.php b/plugins/LanguagesManager/Controller.php
index 2f8ea5dd540a298f0c57e5466092b143c5dd2add..7d716013df6b33856eaa93aac90399b536e3b3d2 100644
--- a/plugins/LanguagesManager/Controller.php
+++ b/plugins/LanguagesManager/Controller.php
@@ -15,7 +15,6 @@ use Piwik\Common;
 use Piwik\DbHelper;
 use Piwik\Piwik;
 use Piwik\Url;
-use Zend_Registry;
 
 /**
  * @package LanguagesManager
@@ -35,7 +34,7 @@ class Controller extends \Piwik\Controller
             $this->checkTokenInUrl();
         }
         LanguagesManager::setLanguageForSession($language);
-        if (Zend_Registry::isRegistered('access')) {
+        if (\Piwik\Registry::isRegistered('access')) {
             $currentUser = Piwik::getCurrentUserLogin();
             if ($currentUser && $currentUser !== 'anonymous') {
                 API::getInstance()->setLanguageForUser($currentUser, $language);
diff --git a/plugins/Login/Login.php b/plugins/Login/Login.php
index 5d89c58b68dd79536da6c1335aa339361b8473aa..44695a20c1ffe4ce07f8ccf60978ac5787129b1b 100644
--- a/plugins/Login/Login.php
+++ b/plugins/Login/Login.php
@@ -58,8 +58,8 @@ class Login extends \Piwik\Plugin
      */
     public function ApiRequestAuthenticate($tokenAuth)
     {
-        \Zend_Registry::get('auth')->setLogin($login = null);
-        \Zend_Registry::get('auth')->setTokenAuth($tokenAuth);
+        \Piwik\Registry::get('auth')->setLogin($login = null);
+        \Piwik\Registry::get('auth')->setTokenAuth($tokenAuth);
     }
 
     /**
@@ -69,7 +69,7 @@ class Login extends \Piwik\Plugin
     function initAuthenticationObject($allowCookieAuthentication = false)
     {
         $auth = new Auth();
-        \Zend_Registry::set('auth', $auth);
+        \Piwik\Registry::set('auth', $auth);
 
         $action = Piwik::getAction();
         if (Piwik::getModule() === 'API'
@@ -107,7 +107,7 @@ class Login extends \Piwik\Plugin
 
         $tokenAuth = API::getInstance()->getTokenAuth($login, $md5Password);
 
-        $auth = \Zend_Registry::get('auth');
+        $auth = \Piwik\Registry::get('auth');
         $auth->setLogin($login);
         $auth->setTokenAuth($tokenAuth);
         $authResult = $auth->authenticate();
diff --git a/plugins/Overlay/API.php b/plugins/Overlay/API.php
index 953ad14e2143bcf5c40a4625314b6dc095243c8f..42d4c97067021a60fd5fcbbec748278cf49cd1e6 100644
--- a/plugins/Overlay/API.php
+++ b/plugins/Overlay/API.php
@@ -121,7 +121,7 @@ class API
         Piwik_PostEvent('FrontController.initAuthenticationObject',
             array(&$notification, $allowCookieAuthentication = true));
 
-        $auth = \Zend_Registry::get('auth');
+        $auth = \Piwik\Registry::get('auth');
         $success = Access::getInstance()->reloadAccess($auth);
 
         if (!$success) {
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 57d69fc9629df06041fec782b697d1e7ba23c806..9a038231346f5fd8c141ebccd93994363d9c8de0 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -46,7 +46,7 @@ class API
      * Example of how you would overwrite the UsersManager_API with your own class:
      * Call the following in your plugin __construct() for example:
      *
-     * \Zend_Registry::set('UsersManager_API',Piwik_MyCustomUsersManager_API::getInstance());
+     * Registry::set('UsersManager_API',Piwik_MyCustomUsersManager_API::getInstance());
      *
      * @throws Exception
      * @return \Piwik\Plugins\UsersManager\API
@@ -54,7 +54,7 @@ class API
     static public function getInstance()
     {
         try {
-            $instance = \Zend_Registry::get('UsersManager_API');
+            $instance = \Piwik\Registry::get('UsersManager_API');
             if (!($instance instanceof API)) {
                 // Exception is caught below and corrected
                 throw new Exception('UsersManager_API must inherit API');
@@ -62,7 +62,7 @@ class API
             self::$instance = $instance;
         } catch (Exception $e) {
             self::$instance = new self;
-            \Zend_Registry::set('UsersManager_API', self::$instance);
+            \Piwik\Registry::set('UsersManager_API', self::$instance);
         }
         return self::$instance;
     }
diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php
index 112219f17749234c969810bbcbcb47be047b2710..31d001e2076c83e8b4609055d67c30b1ecb06ecd 100644
--- a/tests/PHPUnit/DatabaseTestCase.php
+++ b/tests/PHPUnit/DatabaseTestCase.php
@@ -78,7 +78,7 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
         Cache::deleteTrackerCache();
         Config::getInstance()->clear();
         ArchiveTableCreator::clear();
-        \Zend_Registry::_unsetInstance();
+        \Piwik\Registry::unsetInstance();
     }
 
 }
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index c16614073c784cb4a431e26aa664e73878be76b4..a8cc11ccbe715d9631fe074902672caa62df953f 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -241,7 +241,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         Config::getInstance()->clear();
         ArchiveTableCreator::clear();
         \Piwik\Plugins\PDFReports\API::$cache = array();
-        \Zend_Registry::_unsetInstance();
+        \Piwik\Registry::unsetInstance();
 
         $_GET = $_REQUEST = array();
         Translate::getInstance()->unloadEnglishTranslation();