Index: tests/Zend/Controller/Request/HttpTest.php
===================================================================
--- tests/Zend/Controller/Request/HttpTest.php	(revision 16156)
+++ tests/Zend/Controller/Request/HttpTest.php	(working copy)
@@ -212,6 +212,29 @@
         $this->assertSame($params, array_intersect_assoc($params, $received));
     }
 
+    /**
+     * @group ZF-3750
+     */
+    public function testGetParamsWithGetOrPost()
+    {
+        $_GET = array(
+            'get' => true
+        );
+        $_POST = array(
+            'post' => true
+        );
+
+        $this->_request->setParamSources(array('_GET'));
+        $params = $this->_request->getParams();
+        $this->assertArrayHasKey('get', $params);
+        $this->assertArrayNotHasKey('post', $params);
+
+        $this->_request->setParamSources(array('_POST'));
+        $params = $this->_request->getParams();
+        $this->assertArrayHasKey('post', $params);
+        $this->assertArrayNotHasKey('get', $params);
+    }
+
     public function testConstructSetsRequestUri()
     {
         $_SERVER['REQUEST_URI'] = '/mycontroller/myaction?foo=bar';
Index: library/Zend/Controller/Request/Http.php
===================================================================
--- library/Zend/Controller/Request/Http.php	(revision 16156)
+++ library/Zend/Controller/Request/Http.php	(working copy)
@@ -704,7 +704,7 @@
      * Retrieve an array of parameters
      *
      * Retrieves a merged array of parameters, with precedence of userland
-     * params (see {@link setParam()}), $_GET, $POST (i.e., values in the
+     * params (see {@link setParam()}), $_GET, $_POST (i.e., values in the
      * userland params will take precedence over all others).
      *
      * @return array
@@ -712,10 +712,12 @@
     public function getParams()
     {
         $return = $this->_params;
-        if (isset($_GET) && is_array($_GET)) {
+
+        $paramSources = $this->getParamSources();
+        if (in_array('_GET', $paramSources) && isset($_GET) && is_array($_GET)) {
             $return += $_GET;
         }
-        if (isset($_POST) && is_array($_POST)) {
+        if (in_array('_POST', $paramSources) && isset($_POST) && is_array($_POST)) {
             $return += $_POST;
         }
         return $return;

