#4363: Let uuid.uuid1() and uuid.uuid4() run even if the ctypes module is not present.

Will backport to 2.6
diff --git a/Lib/uuid.py b/Lib/uuid.py
index e1b2f4b..4840fa5 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -479,8 +479,8 @@
 
     # When the system provides a version-1 UUID generator, use it (but don't
     # use UuidCreate here because its UUIDs don't conform to RFC 4122).
-    _buffer = ctypes.create_string_buffer(16)
     if _uuid_generate_time and node is clock_seq is None:
+        _buffer = ctypes.create_string_buffer(16)
         _uuid_generate_time(_buffer)
         return UUID(bytes=_buffer.raw)
 
@@ -516,8 +516,8 @@
     """Generate a random UUID."""
 
     # When the system provides a version-4 UUID generator, use it.
-    _buffer = ctypes.create_string_buffer(16)
     if _uuid_generate_random:
+        _buffer = ctypes.create_string_buffer(16)
         _uuid_generate_random(_buffer)
         return UUID(bytes=_buffer.raw)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 7e6787a..1fcf319 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -50,6 +50,9 @@
 Library
 -------
 
+- Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if
+  the ctypes module is not present.
+
 - Issue #4116: Resolve member name conflict in ScrolledCanvas.__init__.
 
 - httplib.HTTPConnection.putheader() now accepts an arbitrary number of values