diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 85bc267..e6f7ef2 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -8228,6 +8228,10 @@ The \fnref{statisticsInitialization} function initializes variables
 used to collect statistics. Currently, only the garbage collector
 information is initialized.
 
+We test {\bfref{*ThisIsARunningSystem*}}. If this variable is true
+then we are restarting from a previously running system and we
+do not want to reset all of the user variables.
+
 \calls{restart}{init-memory-config}
 \calls{restart}{initroot}
 \calls{restart}{openserver}
@@ -8268,13 +8272,15 @@ information is initialized.
     (setq $openServerIfTrue nil) 
     (setq |$SpadServer| t))
   (setq |$IOindex| 1)
-  (setq |$InteractiveFrame| (|makeInitialModemapFrame|))
   (setq |$printLoadMsgs| nil)
   (setq $current-directory (get-current-directory))
   (setq *default-pathname-defaults* (pathname $current-directory))
   (|statisticsInitialization|)
-  (|initHist|)
-  (|initializeInterpreterFrameRing|)
+  (unless *ThisIsARunningSystem* 
+   (setq |$InteractiveFrame| (|makeInitialModemapFrame|))
+   (|initHist|)
+   (|initializeInterpreterFrameRing|))
+  (setq *ThisIsARunningSystem* t)
   (when |$displayStartMsgs| (|spadStartUpMsgs|))
   (setq |$currentLine| nil)
   (restart0)
@@ -31307,6 +31313,19 @@ and Axiom exits. Then do
 
 \end{chunk} 
 
+\defvar{*ThisIsARunningSystem*}
+When a user does
+\begin{verbatim}
+  )savesystem foo
+\end{verbatim}
+we set this variable to true. This is tested in the restart function,
+which is called when the system starts, to prevent losing user
+information.
+\begin{chunk}{initvars}
+(defvar *ThisIsARunningSystem* nil "Are we restarting a running system?")
+
+\end{chunk}
+
 \defun{savesystem}{The )savesystem command}
 \calls{savesystem}{helpSpad2Cmd}
 \calls{savesystem}{spad-save}
@@ -31314,7 +31333,9 @@ and Axiom exits. Then do
 (defun |savesystem| (arg)
   (if (or (not (eql (|#| arg) 1)) (null (symbolp (car arg))))
     (|helpSpad2Cmd| '(|savesystem|))
-    (spad-save (symbol-name (car arg)))))
+    (progn
+     (setq *ThisIsARunningSystem* t)
+     (spad-save (symbol-name (car arg))))))
 
 \end{chunk}
 
diff --git a/changelog b/changelog
index ebf1294..9515c90 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20150105 c1m src/axiom-website/patches.html 20150105.02.c1m.patch
+20150105 c1m books/bookvol5 make savesystem work
 20150105 tpd src/axiom-website/patches.html 20150105.01.tpd.patch
 20150105 tpd books/bookvol5 literate programming changes
 20150105 tpd books/axiom.sty add \Defun for better TOC
diff --git a/patch b/patch
index 6571ee1..507b96f 100644
--- a/patch
+++ b/patch
@@ -1,3 +1,36 @@
-books/bookvol5 literate programming changes
+books/bookvol5 make savesystem work
+
+axiom -nox
+                        AXIOM Computer Algebra System 
+                        Version: Axiom (August 2014)
+               Timestamp: Monday January 5, 2015 at 21:31:45 
+-----------------------------------------------------------------------------
+   Issue )copyright to view copyright notices.
+   Issue )summary for a summary of useful system commands.
+   Issue )quit to leave AXIOM and return to shell.
+   Visit http://axiom-developer.org for more information
+-----------------------------------------------------------------------------
+ 
+(1) -> tpd:=1
+
+   (1)  1
+                                                        Type: PositiveInteger
+(2) -> )savesystem foo
+
+t1 # ./foo
+                        AXIOM Computer Algebra System 
+                        Version: Axiom (August 2014)
+               Timestamp: Monday January 5, 2015 at 21:31:45 
+-----------------------------------------------------------------------------
+   Issue )copyright to view copyright notices.
+   Issue )summary for a summary of useful system commands.
+   Issue )quit to leave AXIOM and return to shell.
+   Visit http://axiom-developer.org for more information
+-----------------------------------------------------------------------------
+ 
+(1) -> tpd
+
+   (1)  1
+                                                        Type: PositiveInteger
+
 
-Rearrange code and begin explanation of the frame mechanism
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a35d871..d95b87a 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4894,6 +4894,8 @@ books/bookvol5 merge, rewrite and remove some browser functions<br/>
 book/timeline correct Ralf Stephan participation<br/>
 <a href="patches/20150105.01.tpd.patch">20150105.01.tpd.patch</a>
 books/bookvol5 literate programming changes<br/>
+<a href="patches/20150105.02.c1m.patch">20150105.02.c1m.patch</a>
+books/bookvol5 make savesystem work<br/>
  </body>
 </html>
 
