update.
[elisp/flim.git] / luna.el
diff --git a/luna.el b/luna.el
index d264c7d..238fba8 100644 (file)
--- a/luna.el
+++ b/luna.el
@@ -19,8 +19,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Code:
 
@@ -164,8 +164,13 @@ The optional 5th BODY is the body of the method."
           (sym (luna-class-find-or-make-member
                 (luna-find-class ',class) ',name))
           (cache (get ',name 'luna-method-cache)))
-       (if cache
-          (unintern (symbol-name ',class) cache))
+       (and cache
+           (fboundp sym)
+           (mapatoms
+            (lambda (s)
+              (if (memq (symbol-function sym) (symbol-value s))
+                  (unintern s cache)))
+            cache))
        (fset sym func)
        (put sym 'luna-method-qualifier ,method-qualifier))))