diff --git a/IPython/Extensions/InterpreterExec.py b/IPython/Extensions/InterpreterExec.py
index cca7c24..9624e0c 100644
--- a/IPython/Extensions/InterpreterExec.py
+++ b/IPython/Extensions/InterpreterExec.py
@@ -50,7 +50,7 @@ del InteractiveShell,prefilter_shell
 
 # Provide pysh and further shell-oriented services
 import os,sys,shutil
-from IPython.genutils import system,shell,getoutput,getoutputerror
+from IPython.utils.genutils import system,shell,getoutput,getoutputerror
 
 # Short aliases for getting shell output as a string and a list
 sout = getoutput
diff --git a/IPython/Extensions/ext_rescapture.py b/IPython/Extensions/ext_rescapture.py
index e02b232..6b7aec8 100644
--- a/IPython/Extensions/ext_rescapture.py
+++ b/IPython/Extensions/ext_rescapture.py
@@ -9,7 +9,7 @@ var = !ls
 """
 
 import IPython.ipapi
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 ip = IPython.ipapi.get()
 
diff --git a/IPython/Extensions/ipipe.py b/IPython/Extensions/ipipe.py
index 1ff37f1..b739df2 100644
--- a/IPython/Extensions/ipipe.py
+++ b/IPython/Extensions/ipipe.py
@@ -133,7 +133,7 @@ from IPython.external import simplegeneric
 from IPython.external import path
 
 try:
-    from IPython import genutils
+    from IPython.utils import genutils
     from IPython.utils import generics
 except ImportError:
     genutils = None
diff --git a/IPython/Extensions/ipy_greedycompleter.py b/IPython/Extensions/ipy_greedycompleter.py
index 0c74bb3..3536efc 100644
--- a/IPython/Extensions/ipy_greedycompleter.py
+++ b/IPython/Extensions/ipy_greedycompleter.py
@@ -11,7 +11,7 @@ do the same in default completer.
 """
 from IPython import ipapi
 from IPython.utils import generics
-from IPython.genutils import dir2
+from IPython.utils.genutils import dir2
 
 def attr_matches(self, text):
     """Compute matches when text contains a dot.
diff --git a/IPython/Extensions/ipy_legacy.py b/IPython/Extensions/ipy_legacy.py
index 2807dfd..ee7f094 100644
--- a/IPython/Extensions/ipy_legacy.py
+++ b/IPython/Extensions/ipy_legacy.py
@@ -14,7 +14,7 @@ ip = IPython.ipapi.get()
 
 import os,sys
 
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 # use rehashx
 
diff --git a/IPython/Extensions/ipy_pretty.py b/IPython/Extensions/ipy_pretty.py
index 924b7fa..60460a4 100644
--- a/IPython/Extensions/ipy_pretty.py
+++ b/IPython/Extensions/ipy_pretty.py
@@ -17,7 +17,7 @@ for numpy dtype objects, add the following to your ipy_user_conf.py::
 """
 
 import IPython.ipapi
-from IPython.genutils import Term
+from IPython.utils.genutils import Term
 
 from IPython.external import pretty
 
diff --git a/IPython/Extensions/ipy_profile_sh.py b/IPython/Extensions/ipy_profile_sh.py
index f320a3d..44dd9ef 100644
--- a/IPython/Extensions/ipy_profile_sh.py
+++ b/IPython/Extensions/ipy_profile_sh.py
@@ -156,9 +156,9 @@ def slash_prefilter_f(self,line):
     
     Removes the need for doing !./foo, !~/foo or !/bin/foo
     """
-    import IPython.genutils
+    from IPython.utils import genutils
     if re.match('(?:[.~]|/[a-zA-Z_0-9]+)/', line):
-        return "_ip.system(" + IPython.genutils.make_quoted_expr(line)+")"
+        return "_ip.system(" + genutils.make_quoted_expr(line)+")"
     raise ipapi.TryNext
 
 # XXX You do not need to understand the next function!
diff --git a/IPython/Extensions/ipy_pydb.py b/IPython/Extensions/ipy_pydb.py
index 1d63bfd..cb17a5f 100644
--- a/IPython/Extensions/ipy_pydb.py
+++ b/IPython/Extensions/ipy_pydb.py
@@ -1,6 +1,6 @@
 import inspect
 import IPython.ipapi
-from IPython.genutils import arg_split
+from IPython.utils.genutils import arg_split
 ip = IPython.ipapi.get()
 
 from IPython.core import debugger
diff --git a/IPython/Extensions/ipy_traits_completer.py b/IPython/Extensions/ipy_traits_completer.py
index 6d3e6f7..b0d4e6c 100644
--- a/IPython/Extensions/ipy_traits_completer.py
+++ b/IPython/Extensions/ipy_traits_completer.py
@@ -53,7 +53,7 @@ from enthought.traits import api as T
 
 # IPython imports
 from IPython.ipapi import TryNext, get as ipget
-from IPython.genutils import dir2
+from IPython.utils.genutils import dir2
 try:
     set
 except:
diff --git a/IPython/Extensions/jobctrl.py b/IPython/Extensions/jobctrl.py
index 3d7b948..7e4e691 100644
--- a/IPython/Extensions/jobctrl.py
+++ b/IPython/Extensions/jobctrl.py
@@ -45,7 +45,7 @@ from subprocess import *
 import os,shlex,sys,time
 import threading,Queue
 
-from IPython import genutils
+from IPython.utils import genutils
 
 import IPython.ipapi
 
diff --git a/IPython/Gnuplot2.py b/IPython/Gnuplot2.py
index cc2eb17..e085ccc 100644
--- a/IPython/Gnuplot2.py
+++ b/IPython/Gnuplot2.py
@@ -25,7 +25,7 @@ import types
 import Gnuplot as Gnuplot_ori
 import Numeric
 
-from IPython.genutils import popkey,xsys
+from IPython.utils.genutils import popkey,xsys
 
 # needed by hardcopy():
 gp = Gnuplot_ori.gp
diff --git a/IPython/GnuplotInteractive.py b/IPython/GnuplotInteractive.py
index 074d2f5..c7f45d2 100644
--- a/IPython/GnuplotInteractive.py
+++ b/IPython/GnuplotInteractive.py
@@ -16,7 +16,7 @@ __all__ = ['Gnuplot','gp','gp_new','plot','plot2','splot','replot',
            'gphelp']
 
 import IPython.GnuplotRuntime as GRun
-from IPython.genutils import page,warn
+from IPython.utils.genutils import page,warn
 
 # Set global names for interactive use
 Gnuplot  = GRun.Gnuplot
diff --git a/IPython/GnuplotRuntime.py b/IPython/GnuplotRuntime.py
index 8bd5185..e03cfe3 100644
--- a/IPython/GnuplotRuntime.py
+++ b/IPython/GnuplotRuntime.py
@@ -53,7 +53,7 @@ __all__ = ['Gnuplot','gp','gp_new','Data','File','Func','GridData',
            'pm3d_config','eps_fix_bbox']
 
 import os,tempfile,sys
-from IPython.genutils import getoutput
+from IPython.utils.genutils import getoutput
 
 #---------------------------------------------------------------------------
 # Notes on mouse support for Gnuplot.py
diff --git a/IPython/Magic.py b/IPython/Magic.py
index 6bd84a7..47f9d15 100644
--- a/IPython/Magic.py
+++ b/IPython/Magic.py
@@ -50,7 +50,7 @@ from IPython.Itpl import Itpl, itpl, printpl,itplns
 from IPython.PyColorize import Parser
 from IPython.ipstruct import Struct
 from IPython.macro import Macro
-from IPython.genutils import *
+from IPython.utils.genutils import *
 from IPython import platutils
 import IPython.utils.generics
 import IPython.ipapi
diff --git a/IPython/OInspect.py b/IPython/OInspect.py
index 0aa196e..deac72e 100644
--- a/IPython/OInspect.py
+++ b/IPython/OInspect.py
@@ -28,7 +28,7 @@ import types
 
 # IPython's own
 from IPython import PyColorize
-from IPython.genutils import page,indent,Term
+from IPython.utils.genutils import page,indent,Term
 from IPython.Itpl import itpl
 from IPython.wildcard import list_namespace
 from IPython.utils.coloransi import *
diff --git a/IPython/Prompts.py b/IPython/Prompts.py
index 7299055..cdc3be0 100644
--- a/IPython/Prompts.py
+++ b/IPython/Prompts.py
@@ -28,7 +28,7 @@ from IPython.ipstruct import Struct
 from IPython.macro import Macro
 import IPython.utils.generics
 
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 #****************************************************************************
 #Color schemes for Prompts.
diff --git a/IPython/Shell.py b/IPython/Shell.py
index 2dd9dac..55ee1b4 100644
--- a/IPython/Shell.py
+++ b/IPython/Shell.py
@@ -36,7 +36,7 @@ except ImportError:
 import IPython
 from IPython import ultraTB, ipapi
 from IPython.Magic import Magic
-from IPython.genutils import Term,warn,error,flag_calls, ask_yes_no
+from IPython.utils.genutils import Term,warn,error,flag_calls, ask_yes_no
 from IPython.iplib import InteractiveShell
 from IPython.ipmaker import make_IPython
 from IPython.ipstruct import Struct
diff --git a/IPython/UserConfig/ipythonrc b/IPython/UserConfig/ipythonrc
index c90044f..b530bb7 100644
--- a/IPython/UserConfig/ipythonrc
+++ b/IPython/UserConfig/ipythonrc
@@ -504,9 +504,9 @@ import_mod
 
 # Example:
 
-# import_some IPython.genutils timing timings
+# import_some IPython.utils.genutils timing timings
 # will produce internally the statement
-# from IPython.genutils import timing, timings
+# from IPython.utils.genutils import timing, timings
 
 # timing() and timings() are two IPython utilities for timing the execution of
 # your own functions, which you may find useful.  Just commment out the above
diff --git a/IPython/config/api.py b/IPython/config/api.py
index 6de3d3e..14b4b6a 100644
--- a/IPython/config/api.py
+++ b/IPython/config/api.py
@@ -18,7 +18,7 @@ __docformat__ = "restructuredtext en"
 import os
 from os.path import join as pjoin
 
-from IPython.genutils import get_home_dir, get_ipython_dir
+from IPython.utils.genutils import get_home_dir, get_ipython_dir
 from IPython.external.configobj import ConfigObj
 
 
diff --git a/IPython/config/configloader.py b/IPython/config/configloader.py
index d64864d..f267fad 100644
--- a/IPython/config/configloader.py
+++ b/IPython/config/configloader.py
@@ -15,7 +15,7 @@ from pprint import pprint
 
 from IPython import ultraTB
 from IPython.ipstruct import Struct
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 class ConfigLoaderError(exceptions.Exception):
     """Exception for ConfigLoader class."""
diff --git a/IPython/core/completer.py b/IPython/core/completer.py
index f51da08..a879154 100644
--- a/IPython/core/completer.py
+++ b/IPython/core/completer.py
@@ -83,7 +83,7 @@ try:
 except NameError:
     from sets import Set as set
 
-from IPython.genutils import debugx, dir2
+from IPython.utils.genutils import debugx, dir2
 
 __all__ = ['Completer','IPCompleter']
 
diff --git a/IPython/core/crashhandler.py b/IPython/core/crashhandler.py
index 1b48c18..f91da42 100644
--- a/IPython/core/crashhandler.py
+++ b/IPython/core/crashhandler.py
@@ -28,7 +28,7 @@ from IPython import Release
 from IPython import ultraTB
 from IPython.Itpl import itpl
 
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 #****************************************************************************
 class CrashHandler:
diff --git a/IPython/core/debugger.py b/IPython/core/debugger.py
index 63d0cd8..4230c01 100644
--- a/IPython/core/debugger.py
+++ b/IPython/core/debugger.py
@@ -33,7 +33,7 @@ import sys
 
 from IPython import PyColorize, ipapi
 from IPython.utils import coloransi
-from IPython.genutils import Term
+from IPython.utils.genutils import Term
 from IPython.core.excolors import exception_colors
 
 # See if we can use pydb.
diff --git a/IPython/external/mglob.py b/IPython/external/mglob.py
index ed3679f..d2d81b1 100755
--- a/IPython/external/mglob.py
+++ b/IPython/external/mglob.py
@@ -213,7 +213,7 @@ def main():
     print "\n".join(expand(sys.argv[1:])),
 
 def mglob_f(self, arg):
-    from IPython.genutils import SList
+    from IPython.utils.genutils import SList
     if arg.strip():
         return SList(expand(arg))
     print "Please specify pattern!"
diff --git a/IPython/frontend/prefilterfrontend.py b/IPython/frontend/prefilterfrontend.py
index ceb21c2..a5e233f 100644
--- a/IPython/frontend/prefilterfrontend.py
+++ b/IPython/frontend/prefilterfrontend.py
@@ -33,7 +33,7 @@ from IPython.kernel.core.redirector_output_trap import RedirectorOutputTrap
 
 from IPython.kernel.core.sync_traceback_trap import SyncTracebackTrap
 
-from IPython.genutils import Term
+from IPython.utils.genutils import Term
 
 from linefrontendbase import LineFrontEndBase, common_prefix
 
diff --git a/IPython/gui/wx/ipshell_nonblocking.py b/IPython/gui/wx/ipshell_nonblocking.py
index def47c5..637c3aa 100644
--- a/IPython/gui/wx/ipshell_nonblocking.py
+++ b/IPython/gui/wx/ipshell_nonblocking.py
@@ -25,6 +25,7 @@ from thread_ex import ThreadEx
 
 try:
     import IPython
+    from IPython.utils import genutils
 except Exception,e:
     print "Error importing IPython (%s)" % str(e)
     raise Exception, e
@@ -143,11 +144,11 @@ class NonBlockingIPShell(object):
         #only one instance can be instanciated else tehre will be
         #cin/cout/cerr clash...
         if cin:
-            IPython.genutils.Term.cin = cin
+            genutils.Term.cin = cin
         if cout:
-            IPython.genutils.Term.cout = cout
+            genutils.Term.cout = cout
         if cerr:
-            IPython.genutils.Term.cerr = cerr
+            genutils.Term.cerr = cerr
         
         excepthook = sys.excepthook
 
diff --git a/IPython/history.py b/IPython/history.py
index 40508c8..ec3a314 100644
--- a/IPython/history.py
+++ b/IPython/history.py
@@ -5,8 +5,7 @@
 import fnmatch
 import os
 
-# IPython imports
-from IPython.genutils import Term, ask_yes_no, warn
+from IPython.utils.genutils import Term, ask_yes_no, warn
 import IPython.ipapi
 
 def magic_history(self, parameter_s = ''):
diff --git a/IPython/hooks.py b/IPython/hooks.py
index dce185e..b68bb2c 100644
--- a/IPython/hooks.py
+++ b/IPython/hooks.py
@@ -44,7 +44,7 @@ somewhere in your configuration files or ipython command line.
 from IPython import ipapi
 
 import os,bisect
-from genutils import Term,shell
+from IPython.utils.genutils import Term,shell
 from pprint import PrettyPrinter
 
 # List here all the default hooks.  For now it's just the editor functions
diff --git a/IPython/iplib.py b/IPython/iplib.py
index ce95008..6a0754a 100644
--- a/IPython/iplib.py
+++ b/IPython/iplib.py
@@ -55,7 +55,7 @@ from IPython.Magic import Magic
 from IPython.Prompts import CachedOutput
 from IPython.ipstruct import Struct
 from IPython.lib.backgroundjobs import BackgroundJobManager
-from IPython.genutils import *
+from IPython.utils.genutils import *
 from IPython.strdispatch import StrDispatch
 import IPython.ipapi
 import IPython.history
diff --git a/IPython/ipmaker.py b/IPython/ipmaker.py
index 64141b9..675f13b 100644
--- a/IPython/ipmaker.py
+++ b/IPython/ipmaker.py
@@ -51,7 +51,7 @@ from IPython.OutputTrap import OutputTrap
 from IPython.config.configloader import ConfigLoader
 from IPython.iplib import InteractiveShell
 from IPython.usage import cmd_line_usage,interactive_usage
-from IPython.genutils import *
+from IPython.utils.genutils import *
 
 def force_import(modname,force_reload=False):
     if modname in sys.modules and force_reload:
diff --git a/IPython/ipstruct.py b/IPython/ipstruct.py
index ef11c47..cddf0b2 100644
--- a/IPython/ipstruct.py
+++ b/IPython/ipstruct.py
@@ -14,7 +14,7 @@ __all__ = ['Struct']
 import types
 import pprint
 
-from IPython.genutils import list2dict2
+from IPython.utils.genutils import list2dict2
 
 class Struct:
     """Class to mimic C structs but also provide convenient dictionary-like
diff --git a/IPython/kernel/config/__init__.py b/IPython/kernel/config/__init__.py
index b4845dc..2326446 100644
--- a/IPython/kernel/config/__init__.py
+++ b/IPython/kernel/config/__init__.py
@@ -20,7 +20,7 @@ from os.path import join as pjoin
 
 from IPython.external.configobj import ConfigObj
 from IPython.config.api import ConfigObjManager
-from IPython.genutils import get_ipython_dir, get_security_dir
+from IPython.utils.genutils import get_ipython_dir, get_security_dir
 
 default_kernel_config = ConfigObj()
 
diff --git a/IPython/kernel/controllerservice.py b/IPython/kernel/controllerservice.py
index 3fe5f41..10ad03b 100644
--- a/IPython/kernel/controllerservice.py
+++ b/IPython/kernel/controllerservice.py
@@ -50,7 +50,7 @@ from IPython.kernel.engineservice import \
     IEngineSerialized, \
     IEngineQueued
     
-from IPython.genutils import get_ipython_dir
+from IPython.utils.genutils import get_ipython_dir
 from IPython.kernel import codeutil
 
 #-------------------------------------------------------------------------------
diff --git a/IPython/kernel/core/prompts.py b/IPython/kernel/core/prompts.py
index 5d9017c..3f50546 100644
--- a/IPython/kernel/core/prompts.py
+++ b/IPython/kernel/core/prompts.py
@@ -30,7 +30,7 @@ from IPython.external.Itpl import ItplNS
 from IPython.utils import coloransi
 from IPython import Release
 from IPython.ipapi import TryNext
-from IPython.genutils import *
+from IPython.utils.genutils import *
 import IPython.utils.generics
 
 #****************************************************************************
diff --git a/IPython/kernel/core/ultraTB.py b/IPython/kernel/core/ultraTB.py
index eaef8d1..4389d5b 100644
--- a/IPython/kernel/core/ultraTB.py
+++ b/IPython/kernel/core/ultraTB.py
@@ -94,7 +94,7 @@ from IPython import PyColorize
 from IPython.core import debugger
 from IPython.ipstruct import Struct
 from IPython.core.excolors import exception_colors
-from IPython.genutils import Term,uniq_stable,error,info
+from IPython.utils.genutils import Term,uniq_stable,error,info
 
 # Globals
 # amount of space to put line numbers before verbose tracebacks
diff --git a/IPython/kernel/map.py b/IPython/kernel/map.py
index 6183176..f9ce2f8 100644
--- a/IPython/kernel/map.py
+++ b/IPython/kernel/map.py
@@ -21,7 +21,7 @@ __docformat__ = "restructuredtext en"
 
 import types
 
-from IPython.genutils import flatten as genutil_flatten
+from IPython.utils.genutils import flatten as genutil_flatten
 
 #-------------------------------------------------------------------------------
 # Figure out which array packages are present and their array types
diff --git a/IPython/kernel/scripts/ipcluster.py b/IPython/kernel/scripts/ipcluster.py
index 34b2d61..14fc4c9 100755
--- a/IPython/kernel/scripts/ipcluster.py
+++ b/IPython/kernel/scripts/ipcluster.py
@@ -29,7 +29,7 @@ from twisted.python import failure, log
 
 from IPython.external import argparse
 from IPython.external import Itpl
-from IPython.genutils import (
+from IPython.utils.genutils import (
     get_ipython_dir, 
     get_log_dir, 
     get_security_dir, 
diff --git a/IPython/kernel/scripts/ipcontroller.py b/IPython/kernel/scripts/ipcontroller.py
index 496b139..fafe39e 100755
--- a/IPython/kernel/scripts/ipcontroller.py
+++ b/IPython/kernel/scripts/ipcontroller.py
@@ -42,7 +42,7 @@ from IPython.kernel.fcutil import check_furl_file_security
 # Create various ipython directories if they don't exist.
 # This must be done before IPython.kernel.config is imported.
 from IPython.iplib import user_setup
-from IPython.genutils import get_ipython_dir, get_log_dir, get_security_dir
+from IPython.utils.genutils import get_ipython_dir, get_log_dir, get_security_dir
 if os.name == 'posix':
     rc_suffix = ''
 else:
diff --git a/IPython/kernel/scripts/ipengine.py b/IPython/kernel/scripts/ipengine.py
index a70ec6a..7ce7cd0 100755
--- a/IPython/kernel/scripts/ipengine.py
+++ b/IPython/kernel/scripts/ipengine.py
@@ -37,7 +37,7 @@ from IPython.kernel.engineservice import EngineService
 # Create various ipython directories if they don't exist.
 # This must be done before IPython.kernel.config is imported.
 from IPython.iplib import user_setup
-from IPython.genutils import get_ipython_dir, get_log_dir, get_security_dir
+from IPython.utils.genutils import get_ipython_dir, get_log_dir, get_security_dir
 if os.name == 'posix':
     rc_suffix = ''
 else:
diff --git a/IPython/lib/backgroundjobs.py b/IPython/lib/backgroundjobs.py
index c5998c3..ab6b845 100644
--- a/IPython/lib/backgroundjobs.py
+++ b/IPython/lib/backgroundjobs.py
@@ -31,7 +31,7 @@ import sys
 import threading
 
 from IPython.ultraTB import AutoFormattedTB
-from IPython.genutils import warn,error
+from IPython.utils.genutils import warn,error
 
 class BackgroundJobManager:
     """Class to manage a pool of backgrounded threaded jobs.
diff --git a/IPython/lib/demo.py b/IPython/lib/demo.py
index 03c7e5d..632b93c 100644
--- a/IPython/lib/demo.py
+++ b/IPython/lib/demo.py
@@ -169,7 +169,7 @@ import shlex
 import sys
 
 from IPython.PyColorize import Parser
-from IPython.genutils import marquee, file_read, file_readlines
+from IPython.utils.genutils import marquee, file_read, file_readlines
 
 __all__ = ['Demo','IPythonDemo','LineDemo','IPythonLineDemo','DemoError']
 
diff --git a/IPython/macro.py b/IPython/macro.py
index 30cf4fb..cd66083 100644
--- a/IPython/macro.py
+++ b/IPython/macro.py
@@ -9,7 +9,7 @@
 
 import IPython.ipapi 
 
-from IPython.genutils import Term
+from IPython.utils.genutils import Term
 from IPython.ipapi import IPyAutocall
 
 class Macro(IPyAutocall):
diff --git a/IPython/shellglobals.py b/IPython/shellglobals.py
index 34ce467..f8372b5 100644
--- a/IPython/shellglobals.py
+++ b/IPython/shellglobals.py
@@ -16,7 +16,7 @@ except ImportError:
     HAS_CTYPES = False
 
 # our own
-from IPython.genutils import Term,warn,error,flag_calls, ask_yes_no
+from IPython.utils.genutils import Term,warn,error,flag_calls, ask_yes_no
 
 #-----------------------------------------------------------------------------
 # Globals
diff --git a/IPython/testing/mkdoctests.py b/IPython/testing/mkdoctests.py
index 142f1cc..ea5dd09 100644
--- a/IPython/testing/mkdoctests.py
+++ b/IPython/testing/mkdoctests.py
@@ -38,7 +38,7 @@ import tempfile
 
 # IPython-specific libraries
 from IPython import irunner
-from IPython.genutils import fatal
+from IPython.utils.genutils import fatal
 
 class IndentOut(object):
     """A simple output stream that indents all output by a fixed amount.
diff --git a/IPython/testing/plugin/ipdoctest.py b/IPython/testing/plugin/ipdoctest.py
index f63b588..b654d65 100644
--- a/IPython/testing/plugin/ipdoctest.py
+++ b/IPython/testing/plugin/ipdoctest.py
@@ -82,7 +82,7 @@ class py_file_finder(object):
         self.test_filename = test_filename
         
     def __call__(self,name):
-        from IPython.genutils import get_py_filename
+        from IPython.utils.genutils import get_py_filename
         try:
             return get_py_filename(name)
         except IOError:
diff --git a/IPython/twshell.py b/IPython/twshell.py
index f00ab02..08f699e 100644
--- a/IPython/twshell.py
+++ b/IPython/twshell.py
@@ -11,7 +11,7 @@ from IPython.iplib import InteractiveShell
 from IPython.ipstruct import Struct
 import Queue,thread,threading,signal
 from signal import signal, SIGINT
-from IPython.genutils import Term,warn,error,flag_calls, ask_yes_no
+from IPython.utils.genutils import Term,warn,error,flag_calls, ask_yes_no
 import shellglobals
 
 def install_gtk2():
diff --git a/IPython/ultraTB.py b/IPython/ultraTB.py
index d3f3628..45eee93 100644
--- a/IPython/ultraTB.py
+++ b/IPython/ultraTB.py
@@ -94,7 +94,7 @@ from IPython import PyColorize
 from IPython.core import debugger
 from IPython.ipstruct import Struct
 from IPython.core.excolors import exception_colors
-from IPython.genutils import Term,uniq_stable,error,info
+from IPython.utils.genutils import Term,uniq_stable,error,info
 
 # Globals
 # amount of space to put line numbers before verbose tracebacks
diff --git a/IPython/genutils.py b/IPython/utils/genutils.py
similarity index 100%
rename from IPython/genutils.py
rename to IPython/utils/genutils.py
diff --git a/IPython/tests/test_genutils.py b/IPython/utils/tests/test_genutils.py
similarity index 98%
rename from IPython/tests/test_genutils.py
rename to IPython/utils/tests/test_genutils.py
index 17d9449..b8f1995 100644
--- a/IPython/tests/test_genutils.py
+++ b/IPython/utils/tests/test_genutils.py
@@ -31,7 +31,7 @@ from nose.tools import raises
 
 # Our own
 import IPython
-from IPython import genutils
+from IPython.utils import genutils
 from IPython.testing.decorators import skipif, skip_if_not_win32
 
 # Platform-dependent imports
diff --git a/IPython/utils/tests/test_imports.py b/IPython/utils/tests/test_imports.py
index ebd3577..faf6e90 100644
--- a/IPython/utils/tests/test_imports.py
+++ b/IPython/utils/tests/test_imports.py
@@ -10,3 +10,8 @@ def test_import_DPyGetOpt():
 def test_import_generics():
     from IPython.utils import generics
 
+def test_import_genutils():
+    from IPython.utils import genutils
+
+
+
diff --git a/IPython/wildcard.py b/IPython/wildcard.py
index 3e62d8a..a82b9da 100644
--- a/IPython/wildcard.py
+++ b/IPython/wildcard.py
@@ -20,7 +20,7 @@ import pprint
 import re
 import types
 
-from IPython.genutils import dir2
+from IPython.utils.genutils import dir2
 
 def create_typestr2type_dicts(dont_include_in_type2type2str=["lambda"]):
     """Return dictionaries mapping lower case typename to type objects, from
diff --git a/docs/source/development/reorg.txt b/docs/source/development/reorg.txt
index 0226556..ff01965 100644
--- a/docs/source/development/reorg.txt
+++ b/docs/source/development/reorg.txt
@@ -114,6 +114,8 @@ Where things will be moved
 
 * :file:`generics.py`.  Move to :file:`IPython.python`.
 
+* :file:`genutils.py`.  Move to :file:`IPython.utils`.
+
 * :file:`Extensions`. This needs to be gone through separately.  Minimally,
   the package should be renamed to :file:`extensions`.
 
@@ -158,8 +160,6 @@ Where things will be moved
 * :file:`frontend`.  Good where it is!
 
 
-* :file:`genutils.py`.  Move to :file:`IPython.python` and break up into different
-  modules.
 
 * :file:`gui`.  Eventually this should be moved to a subdir of   
   :file:`IPython.frontend`.