--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/FSPageTemplate.py	2003-09-30 07:30:27.000000000 +0200
+++ CMFCore/FSPageTemplate.py	2003-12-06 14:11:11.000000000 +0100
@@ -220,15 +220,20 @@
     PrincipiaSearchSource = ZopePageTemplate.PrincipiaSearchSource
 
     security.declareProtected(ViewManagementScreens, 'document_src')
-    document_src = ZopePageTemplate.document_src
+    document_src = ZopePageTemplate.document_src.im_func
 
-    pt_getContext = ZopePageTemplate.pt_getContext
+    pt_getContext = ZopePageTemplate.pt_getContext.im_func
 
-    ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams
+    ZScriptHTML_tryParams = ZopePageTemplate.ZScriptHTML_tryParams.im_func
 
 
-d = FSPageTemplate.__dict__
-d['source.xml'] = d['source.html'] = Src()
+# does not work with Zope 2.8
+#d = FSPageTemplate.__dict__
+#d['source.xml'] = d['source.html'] = Src()
+_s = Src()
+setattr(FSPageTemplate,'source.xml',_s)
+setattr(FSPageTemplate,'source.html',_s)
+del _s
 
 Globals.InitializeClass(FSPageTemplate)
 
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/MemberDataTool.py	2003-06-24 15:00:39.000000000 +0200
+++ CMFCore/MemberDataTool.py	2003-12-06 14:25:33.000000000 +0100
@@ -224,7 +224,7 @@
         transactions and to reduce the necessary number of
         entries.
         '''
-        self._members[id] = m
+        self._members[id] = m.aq_base
 
 InitializeClass(MemberDataTool)
 
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/CatalogTool.py	2003-09-17 07:00:53.000000000 +0200
+++ CMFCore/CatalogTool.py	2003-12-06 15:34:46.000000000 +0100
@@ -224,7 +224,7 @@
 
     manage_catalogFind = DTMLFile( 'catalogFind', _dtmldir )
 
-    def catalog_object(self, object, uid, idxs=[]):
+    def catalog_object(self, object, uid, idxs=[], update_metadata=1):
         # Wraps the object with workflow and accessibility
         # information just before cataloging.
         wf = getattr(self, 'portal_workflow', None)
@@ -233,7 +233,7 @@
         else:
             vars = {}
         w = IndexableObjectWrapper(vars, object)
-        ZCatalog.catalog_object(self, w, uid, idxs)
+        ZCatalog.catalog_object(self, w, uid, idxs, update_metadata)
 
     security.declarePrivate('indexObject')
     def indexObject(self, object):
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/utils.py	2003-09-17 07:00:54.000000000 +0200
+++ CMFCore/utils.py	2003-12-06 15:57:52.000000000 +0100
@@ -359,8 +359,8 @@
         'An override that makes the schema fixed.'
         my_kw = kw.copy()
         my_kw['property_extensible_schema__'] = 0
-        return apply(PropertyManager.manage_propertiesForm,
-                     (self, self, REQUEST,) + args, my_kw)
+        return apply(PropertyManager.manage_propertiesForm.__of__(self),
+                     (self, REQUEST,) + args, my_kw)
 
     security.declarePublic('propertyLabel')
     def propertyLabel(self, id):
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/FSDTMLMethod.py	2003-09-17 07:00:53.000000000 +0200
+++ CMFCore/FSDTMLMethod.py	2003-12-06 16:25:05.000000000 +0100
@@ -189,7 +189,7 @@
     document_src = DTMLMethod.document_src
 
     security.declareProtected(ViewManagementScreens, 'manage_haveProxy')
-    manage_haveProxy = DTMLMethod.manage_haveProxy
+    manage_haveProxy = DTMLMethod.manage_haveProxy.im_func
 
 Globals.InitializeClass(FSDTMLMethod)
 
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/FSPythonScript.py	2003-09-17 07:00:53.000000000 +0200
+++ CMFCore/FSPythonScript.py	2003-12-06 16:25:10.000000000 +0100
@@ -202,7 +202,7 @@
     def params(self): return self._params
 
     security.declareProtected(ViewManagementScreens, 'manage_haveProxy')
-    manage_haveProxy = PythonScript.manage_haveProxy
+    manage_haveProxy = PythonScript.manage_haveProxy.im_func
 
     security.declareProtected(ViewManagementScreens, 'body')
     def body(self): return self._body
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/PortalFolder.py	2003-09-17 07:00:54.000000000 +0200
+++ CMFCore/PortalFolder.py	2003-12-06 16:27:48.000000000 +0100
@@ -602,5 +602,5 @@
         """
         return '; '.join(self.description)
 
-manage_addPortalFolder = PortalFolder.manage_addPortalFolder
+manage_addPortalFolder = PortalFolder.manage_addPortalFolder.im_func
 manage_addPortalFolderForm = DTMLFile( 'folderAdd', globals() )
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/tests/test_DirectoryView.py	2003-09-17 07:00:55.000000000 +0200
+++ CMFCore/tests/test_DirectoryView.py	2003-12-06 16:59:15.000000000 +0100
@@ -1,4 +1,5 @@
 from unittest import TestCase, TestSuite, makeSuite, main
+import time
 
 import Zope
 try:
@@ -140,6 +141,9 @@
         # initialise skins
         self._registerDirectory(self)
 
+        # sleep a bit to work around limited time resolution problem
+        time.sleep(1)
+
         # add a method to the fake skin folder
         self._writeFile(self.test2path, "return 'test2'")
 
@@ -185,6 +189,9 @@
         """
         remove(self.test2path)
         self.failIf(hasattr(self.ob.fake_skin,'test2'))
+
+        # sleep a bit to work around limited time resolution problem
+        time.sleep(1)
             
         # add method back to the fake skin folder
         self._writeFile(self.test2path, "return 'test2.2'")
@@ -192,6 +199,8 @@
         # check
         self.assertEqual(self.ob.fake_skin.test2(),'test2.2')
 
+        # sleep a bit to work around limited time resolution problem
+        time.sleep(1)
         
         # edit method
         self._writeFile(self.test2path, "return 'test2.3'")
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/tests/test_FSSecurity.py	2003-06-10 09:11:37.000000000 +0200
+++ CMFCore/tests/test_FSSecurity.py	2003-12-06 17:17:30.000000000 +0100
@@ -87,6 +87,7 @@
             """ Test adding of a .security """
             # baseline
             self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+            sleep(1) # to counter limited time resolution
             # add
             self._writeFile('test5.py.security','View:acquire:Manager')
             # test            
@@ -96,9 +97,11 @@
             """ Test deleting of a .security """
             # baseline
             self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
+            sleep(1) # to counter limited time resolution
             self._writeFile('test5.py.security','View:acquire:Manager')
             self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
             # delete
+            sleep(1) # to counter limited time resolution
             self._deleteFile('test5.py.security')
             # test
             self._checkSettings(self.ob.fake_skin.test5,'View',1,[])
@@ -115,6 +118,7 @@
             self._writeFile('test5.py.security','View::Manager,Anonymous')
             self._checkSettings(self.ob.fake_skin.test5,'View',0,['Manager','Anonymous'])           
             # edit
+            sleep(1) # to counter limited time resolution
             self._writeFile('test5.py.security','View:acquire:Manager')
             # test
             self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
@@ -138,6 +142,7 @@
             self._checkSettings(self.ob.fake_skin.test5,'View',0,['Manager','Anonymous'])
 
             # edit
+            sleep(1) # see above
             self._writeFile('test5.py.security','View:acquire:Manager')
             # test
             self._checkSettings(self.ob.fake_skin.test5,'View',1,['Manager'])
--- /home/dieter/Haufe/src/Zope/lib/python/Products/CMFCore/tests/base/tidata.py	2003-09-16 10:04:53.000000000 +0200
+++ CMFCore/tests/base/tidata.py	2003-12-06 16:40:34.000000000 +0100
@@ -283,11 +283,11 @@
 ##bind namespace=
 ##bind script=script
 ##bind subpath=traverse_subpath
-##parameters=container, id
+##parameters=container_, id
 ##title=
 ##
-product = container.manage_addProduct['FooProduct']
+product = container_.manage_addProduct['FooProduct']
 product.addFoo(id)
-item = getattr(container, id)
+item = getattr(container_, id)
 return item
 """
