Index: django/db/backends/postgresql/operations.py
===================================================================
--- django/db/backends/postgresql/operations.py	(revision 7409)
+++ django/db/backends/postgresql/operations.py	(working copy)
@@ -1,8 +1,13 @@
 from django.db.backends import BaseDatabaseOperations
+import re
 
 # This DatabaseOperations class lives in here instead of base.py because it's
 # used by both the 'postgresql' and 'postgresql_psycopg2' backends.
 
+# re string to match the numerical portion of the version numbers of PostgreSQL
+#
+server_version_re = re.compile(r'PostgreSQL (\d{1,2})\.(\d{1,2})\.?(\d{1,2})?')
+
 class DatabaseOperations(BaseDatabaseOperations):
     def __init__(self):
         self._postgres_version = None
@@ -12,7 +17,11 @@
             from django.db import connection
             cursor = connection.cursor()
             cursor.execute("SELECT version()")
-            self._postgres_version = [int(val) for val in cursor.fetchone()[0].split()[1].split('.')]
+            version_string = cursor.fetchone()[0]
+            m = server_version_re.match(version_string)
+            if not m:
+                raise Exception('Unable to determine PostgreSQL version from version() function string: %r' % version_string)
+            self._postgres_version = [int(val) for val in m.groups() if val != None]
         return self._postgres_version
     postgres_version = property(_get_postgres_version)
 
