Index: services/taxonomy_service/taxonomy_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/taxonomy_service/Attic/taxonomy_service.module,v
retrieving revision 1.4.2.9
diff -u -r1.4.2.9 taxonomy_service.module
--- services/taxonomy_service/taxonomy_service.module	18 May 2009 20:55:22 -0000	1.4.2.9
+++ services/taxonomy_service/taxonomy_service.module	15 Oct 2009 02:41:04 -0000
@@ -129,12 +129,4 @@
       '#help'     => t('Finds all nodes that match selected taxonomy conditions.')
     ),
   );
-}
-
-function taxonomy_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function taxonomy_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/node_service/node_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/node_service/Attic/node_service.module,v
retrieving revision 1.5.2.21.2.1
diff -u -r1.5.2.21.2.1 node_service.module
--- services/node_service/node_service.module	8 Aug 2009 03:07:14 -0000	1.5.2.21.2.1
+++ services/node_service/node_service.module	15 Oct 2009 02:41:04 -0000
@@ -108,12 +108,4 @@
           '#description'    => t('A node ID.'))),
       '#help'             => t('Delete a node.')),
   );
-}
-
-function node_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function node_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/comment_service/comment_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/comment_service/Attic/comment_service.module,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 comment_service.module
--- services/comment_service/comment_service.module	6 Jun 2009 22:57:40 -0000	1.1.2.1
+++ services/comment_service/comment_service.module	15 Oct 2009 02:41:04 -0000
@@ -130,12 +130,4 @@
       '#help'   => t('This method returns the number of new comments on a given node since a given timestamp.'),
     ),
   );
-}
-
-function comments_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function comments_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/menu_service/menu_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/menu_service/Attic/menu_service.module,v
retrieving revision 1.1.2.7
diff -u -r1.1.2.7 menu_service.module
--- services/menu_service/menu_service.module	18 May 2009 20:55:21 -0000	1.1.2.7
+++ services/menu_service/menu_service.module	15 Oct 2009 02:41:04 -0000
@@ -36,12 +36,4 @@
         t('Retrieves a menu tree.')
     )
   );
-}
-
-function menu_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function menu_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/views_service/views_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/views_service/Attic/views_service.module,v
retrieving revision 1.4.2.20
diff -u -r1.4.2.20 views_service.module
--- services/views_service/views_service.module	18 May 2009 20:55:22 -0000	1.4.2.20
+++ services/views_service/views_service.module	15 Oct 2009 02:41:04 -0000
@@ -106,12 +106,4 @@
       '#help'             => t('Imports a view through code, equivalent to using the Import tab in the views admin.'),
     ),
   );
-}
-
-function views_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function views_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/Attic/services.module,v
retrieving revision 1.8.2.88.2.6
diff -u -r1.8.2.88.2.6 services.module
--- services.module	5 Sep 2009 13:57:58 -0000	1.8.2.88.2.6
+++ services.module	15 Oct 2009 02:41:03 -0000
@@ -388,7 +388,7 @@
  * @return array
  *  An array containing all resources.
  */
-function services_get_all_resources($include_services = TRUE) {
+function services_get_all_resources($include_services = TRUE, $reset = FALSE) {
   $cache_key = 'services:resources' . ($include_services?'_with_services':'');
 
   if (!$reset && ($cache = cache_get($cache_key)) && isset($cache->data)) {
@@ -434,6 +434,18 @@
   }
 }
 
+function services_form_alter(&$form, $form_state, $form_id) {
+  if ($form_id == 'system_modules') {
+    // Add our own submit hook to clear cache
+    $form['#submit'][] = 'services_system_modules_submit';
+  }
+}
+
+function services_system_modules_submit($form, &$form_state) {
+  // Reset services cache
+  services_get_all(TRUE, TRUE);
+}
+
 function services_process_resources(&$resources, &$controllers, $path=array()) {
   foreach ($resources as $name => &$resource) {
     if (drupal_substr($name, 0, 1) != '#') {
@@ -510,10 +522,10 @@
  * @return array
  *   An array containing all services and thir methods
  */
-function services_get_all($include_resources = TRUE) {
+function services_get_all($include_resources = TRUE, $reset = FALSE) {
   $cache_key = 'services:methods' . ($include_resources?'_with_resources':'');
 
-  if (($cache = cache_get($cache_key)) && isset($cache->data)) {
+  if (!$reset && ($cache = cache_get($cache_key)) && isset($cache->data)) {
     return $cache->data;
   }
   else {
@@ -553,7 +565,7 @@
 
     // Add resources if wanted
     if ($include_resources) {
-      $resources = services_get_all_resources(FALSE);
+      $resources = services_get_all_resources(FALSE, $reset);
 
       // Include the file that has the necessary functions for translating
       // resources to method calls.
Index: services/file_service/file_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/file_service/Attic/file_service.module,v
retrieving revision 1.1.2.7
diff -u -r1.1.2.7 file_service.module
--- services/file_service/file_service.module	18 May 2009 20:55:21 -0000	1.1.2.7
+++ services/file_service/file_service.module	15 Oct 2009 02:41:04 -0000
@@ -52,12 +52,4 @@
       '#help'             => t('Returns the files attached to a node.')
     ),
   );
-}
-
-function file_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function file_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/search_service/search_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/search_service/Attic/search_service.module,v
retrieving revision 1.1.4.19
diff -u -r1.1.4.19 search_service.module
--- services/search_service/search_service.module	20 May 2009 01:53:15 -0000	1.1.4.19
+++ services/search_service/search_service.module	15 Oct 2009 02:41:04 -0000
@@ -118,12 +118,4 @@
       '#help'     => t('Searches users according to keys via hook_search.'),
     )
   );
-}
-
-function search_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function search_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/user_service/user_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/user_service/Attic/user_service.module,v
retrieving revision 1.3.2.16
diff -u -r1.3.2.16 user_service.module
--- services/user_service/user_service.module	18 May 2009 20:55:22 -0000	1.3.2.16
+++ services/user_service/user_service.module	15 Oct 2009 02:41:04 -0000
@@ -117,12 +117,4 @@
       '#help'             => t('Save user details.')
     ),
   );
-}
-
-function user_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function user_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
Index: services/system_service/system_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/system_service/Attic/system_service.module,v
retrieving revision 1.3.2.20
diff -u -r1.3.2.20 system_service.module
--- services/system_service/system_service.module	20 May 2009 01:53:15 -0000	1.3.2.20
+++ services/system_service/system_service.module	15 Oct 2009 02:41:04 -0000
@@ -158,12 +158,4 @@
         '#help'     => t('Clear cache on remote site.'),
       ),
   );
-}
-
-function system_service_disable() {
-  cache_clear_all('services:methods', 'cache');
-}
-
-function system_service_enable() {
-  cache_clear_all('services:methods', 'cache');
 }
\ No newline at end of file
